@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Playfair+Display:wght@700;800;900&display=swap');
@font-face{font-family:'FoundryGridnik';src:url('FoundryGridnik-Light.otf') format('opentype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'FoundryGridnik';src:url('FoundryGridnik-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'FoundryGridnik';src:url('FoundryGridnik-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'FoundryGridnik';src:url('FoundryGridnik-Bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
*{margin:0;padding:0;box-sizing:border-box}
:root{--black:#111;--gray-800:#333;--gray-600:#555;--gray-500:#777;--gray-400:#999;--gray-300:#bbb;--gray-200:#ddd;--gray-100:#f0f0f0;--white:#fff;--shadow-sm:0 1px 3px rgba(0,0,0,.06);--shadow-md:0 4px 12px rgba(0,0,0,.08);--shadow-lg:0 8px 30px rgba(0,0,0,.1);--radius:16px;--radius-sm:10px}
body{font-family:'Inter',-apple-system,sans-serif;background:#0a0a0a;color:var(--gray-800);min-height:100vh}
.header{text-align:center;padding:48px 24px 32px}
.logo-container{display:flex;align-items:center;justify-content:center;margin-bottom:8px}
.logo-img{height:60px;width:auto}
.divider{width:60px;height:2px;background:var(--gray-200);margin:24px auto 0}
.container{max-width:1200px;margin:0 auto;padding:0 24px 60px}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.form-section,.calendar-section{animation:fadeUp .6s ease}
.section-title{font-size:11px;font-weight:700;letter-spacing:3px;color:var(--gray-400);text-transform:uppercase;margin-bottom:20px;padding-left:4px}
.card{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius);padding:32px;margin-bottom:24px;box-shadow:var(--shadow-sm);transition:box-shadow .3s}
.card:hover{box-shadow:var(--shadow-md)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}
.form-group{display:flex;flex-direction:column}
.form-group label{font-size:11px;font-weight:600;letter-spacing:1.5px;color:var(--gray-500);text-transform:uppercase;margin-bottom:8px}
.form-group input:not([type=checkbox]),.form-group select{padding:12px 16px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-family:'Inter',sans-serif;font-size:14px;font-weight:500;color:var(--gray-800);background:var(--white);transition:border-color .2s,box-shadow .2s;appearance:none;-webkit-appearance:none}
.form-group input[type=checkbox]{width:16px;height:16px;accent-color:var(--black);cursor:pointer;appearance:auto;-webkit-appearance:auto}
.form-group select{background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--gray-800);box-shadow:0 0 0 3px rgba(0,0,0,.05)}
.form-group input::placeholder{color:var(--gray-300);font-weight:400}
.name-input{grid-column:1/-1}
.name-input input{font-size:18px;font-weight:600;padding:14px 16px;letter-spacing:.5px}
.pill-group{display:flex;flex-direction:column;grid-column:1/-1}
.pill-group label{font-size:11px;font-weight:600;letter-spacing:1.5px;color:var(--gray-500);text-transform:uppercase;margin-bottom:10px}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.pill{padding:10px 20px;border:1.5px solid var(--gray-200);border-radius:50px;font-family:'Inter',sans-serif;font-size:13px;font-weight:500;color:var(--gray-500);background:var(--white);cursor:pointer;transition:all .2s;user-select:none}
.pill:hover{border-color:var(--gray-400);color:var(--gray-800)}
.pill.active{background:var(--black);color:var(--white);border-color:var(--black)}
.conditional-section{display:none;margin-top:16px;padding-top:16px;border-top:1px solid var(--gray-100);animation:fadeUp .3s ease}
.conditional-section.visible{display:block}
.btn-generate{display:block;width:100%;padding:18px;background:var(--black);color:var(--white);border:none;border-radius:var(--radius-sm);font-family:'Inter',sans-serif;font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .3s;margin-top:8px}
.btn-generate:hover{background:var(--gray-800);transform:translateY(-1px);box-shadow:var(--shadow-lg)}
.calendar-section{display:none}
.calendar-section.visible{display:block;padding-top:72px;background:#fff;border-radius:24px 24px 0 0;margin-top:-12px;padding-bottom:40px}
.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px}
.calendar-header h2{font-family:'Playfair Display',serif;font-size:28px;font-weight:800;color:var(--black)}
.user-badge{display:flex;align-items:center;gap:12px;background:var(--gray-100);padding:10px 20px;border-radius:50px}
.user-badge .badge-icon{width:32px;height:32px;background:var(--black);border-radius:50%;display:flex;align-items:center;justify-content:center}
.user-badge .badge-icon svg{width:16px;height:16px}
.user-badge-info{display:flex;flex-direction:column}
.user-badge-name{font-size:13px;font-weight:700;color:var(--black)}
.user-badge-detail{font-size:11px;color:var(--gray-500)}
.stats-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin-bottom:20px}
.stat-item{background:var(--gray-100);border-radius:var(--radius-sm);padding:16px;text-align:center;cursor:pointer;transition:background .2s}
.stat-item:hover{background:var(--gray-200)}
.stat-value{font-size:20px;font-weight:800;color:var(--black);line-height:1}
.stat-label{font-size:10px;font-weight:600;letter-spacing:1px;color:var(--gray-400);text-transform:uppercase;margin-top:4px}
.format-switcher{display:none;margin-bottom:20px;padding:20px 24px;background:var(--gray-100);border-radius:var(--radius)}
.format-switcher.visible{display:block}
.format-switcher label{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--gray-500);text-transform:uppercase;display:block;margin-bottom:10px}
.format-switcher .pills .pill{background:var(--white)}
.format-switcher .pills .pill.active{background:#22c55e;color:#000;border-color:#22c55e;font-weight:700}
.week-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.week-day{border:1px solid var(--gray-100);border-radius:var(--radius-sm);overflow:hidden;min-height:340px;display:flex;flex-direction:column;transition:box-shadow .3s,transform .2s;cursor:grab}
.week-day:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.week-day.rest{opacity:.5}
.week-day.dragging{opacity:.4;transform:scale(.95);cursor:grabbing}
.week-day.drag-over{border:2px dashed var(--black);background:rgba(0,0,0,.02);transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.week-day-header{padding:12px 10px;text-align:center;border-bottom:1px solid var(--gray-100)}
.week-day-name{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;color:var(--black)}
.week-day-tag{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:3px 8px;border-radius:50px;margin-top:4px}
.week-day-tag.strength{background:#111;color:#fff}
.week-day-tag.cardio{background:#444;color:#fff}
.week-day-tag.hiit{background:#666;color:#fff}
.week-day-tag.hybrid{background:#333;color:#fff}
.week-day-tag.hyrox{background:#222;color:#fff}
.week-day-tag.rest-tag{background:var(--gray-100);color:var(--gray-400)}
.week-day-body{flex:1;padding:10px;overflow-y:auto}
.ex-row{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px solid var(--gray-100)}
.ex-row:last-child{border-bottom:none}
.ex-num{width:20px;height:20px;min-width:20px;background:var(--gray-100);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--gray-500);margin-top:1px}
.ex-info{flex:1}
.ex-name{font-size:12px;font-weight:600;color:var(--gray-800);line-height:1.3}
.ex-detail{font-size:10px;color:var(--gray-400);margin-top:1px}
/* Editable inline inputs */
.edit-inline{width:100%;border:none;background:transparent;font-family:'Inter',sans-serif;padding:1px 0;outline:none;transition:background .2s,border .2s;border-radius:3px}
.edit-inline:hover{background:var(--gray-100)}
.edit-inline:focus{background:#fffde7;border:1px solid var(--gray-300);padding:0px 3px}
.edit-name{font-size:12px;font-weight:600;color:var(--gray-800);line-height:1.3}
.edit-equip{font-size:9px;color:var(--gray-400);margin-top:1px;font-style:italic}
.edit-detail{font-size:10px;color:var(--gray-500);margin-top:2px}
.ex-equip{font-size:9px;color:var(--gray-400);font-style:italic;margin-top:1px}
.ex-del{color:var(--gray-300);font-size:12px;cursor:pointer;padding:0 3px;line-height:1;transition:color .15s;align-self:flex-start;margin-top:2px}
.ex-del:hover{color:#c00}
/* AM/PM session blocks */
.session-label{font-size:8px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--gray-400);padding:6px 10px 2px;background:var(--gray-100)}
.session-divider{height:2px;background:var(--gray-200);margin:0}
/* Session header — chip de color */
.session-hdr{display:flex;align-items:center;gap:6px;padding:5px 8px 4px;background:var(--gray-50);border-bottom:1px solid var(--gray-100)}
.session-tag-inline{font-size:8px;padding:2px 10px;margin:0!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.session-hdr-acts{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-left:6px}
/* Rest day */
.rest-message{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:120px;color:var(--gray-400);text-align:center;padding:16px 10px;cursor:pointer;border-radius:var(--radius-sm);transition:background .2s;border:2px dashed transparent}
.rest-message:hover{background:var(--gray-100);border-color:var(--gray-200);color:var(--gray-600)}
.rest-icon{font-size:24px;filter:grayscale(100%);opacity:.5;margin-bottom:6px}
.rest-text{font-size:11px;font-weight:500;line-height:1.5;margin-bottom:4px}
.rest-add-hint{font-size:10px;color:var(--gray-300);letter-spacing:.5px}
/* Client locked mode — hide all edit controls */
.client-locked .add-btn,.client-locked .add-opts,.client-locked .ex-del,.client-locked .swap-btn,.client-locked #dragHint,.client-locked .remove-act{display:none!important}
.client-locked .edit-inline{pointer-events:none;border-color:transparent;background:transparent}
.add-btn{width:36px;height:36px;border-radius:50%;border:2px dashed var(--gray-300);background:var(--white);color:var(--gray-400);font-size:18px;font-weight:300;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;margin:6px auto}
.add-btn:hover{border-color:var(--black);color:var(--black);transform:scale(1.1)}
.add-opts{display:none;flex-direction:column;gap:6px;width:100%;padding:4px 6px}
.add-opts.visible{display:flex}
.add-opt{padding:7px 10px;border:1px solid var(--gray-200);border-radius:8px;font-family:'Inter',sans-serif;font-size:10px;font-weight:600;letter-spacing:.5px;color:var(--gray-600);background:var(--white);cursor:pointer;transition:all .15s;text-align:center}
.add-opt:hover{background:var(--black);color:var(--white);border-color:var(--black)}
.swap-btn{font-size:12px;cursor:pointer;color:var(--gray-400);padding:2px 4px;border-radius:4px;transition:all .15s}
.swap-btn:hover{color:var(--black);background:var(--gray-100)}
.remove-act{display:inline-block;font-size:8px;font-weight:600;color:var(--gray-400);cursor:pointer;letter-spacing:1px;text-transform:uppercase;padding:3px 6px;border-radius:4px;transition:all .15s}
.remove-act:hover{color:#c00;background:rgba(200,0,0,.05)}
/* Drink recs */
.drink-recs{border-top:1.5px solid var(--gray-200);margin-top:auto}
.drink-rec{padding:8px 10px}
.drink-rec.pre{background:#f7f7f5}
.drink-rec.post{background:#f2f2f0}
.drink-rec-label{font-size:7px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-400);margin-bottom:3px}
.drink-rec-name{font-size:10px;font-weight:700;color:var(--black);line-height:1.2}
.drink-rec-desc{font-size:8px;color:var(--gray-500);margin-top:1px;line-height:1.2}
.coach-footer{margin-top:32px;text-align:center;padding:24px;border-top:1px solid var(--gray-100)}
.coach-label{font-size:10px;font-weight:600;letter-spacing:2px;color:var(--gray-400);text-transform:uppercase}
.coach-name{font-size:18px;font-weight:800;color:var(--black);margin-top:4px}
.actions{display:flex;gap:12px;margin-top:24px;justify-content:center;flex-wrap:wrap}
.btn-action{padding:12px 28px;border:1.5px solid var(--gray-200);border-radius:50px;font-family:'Inter',sans-serif;font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s;background:var(--white);color:var(--gray-600)}
.btn-action:hover{border-color:var(--black);color:var(--black)}
.btn-action.primary{background:var(--black);color:var(--white);border-color:var(--black)}
.btn-action.primary:hover{background:var(--gray-800)}
/* ── Header search placeholder ── */
#headerSearch::placeholder{color:rgba(255,255,255,.4)}
#headerSearch:focus{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.35)}

/* ── Perfil Clínico ── */
.pc-tab{background:none;border:none;padding:12px 22px;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;color:var(--gray-400);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}
.pc-tab:hover{color:var(--gray-700)}
.pc-tab.active{color:var(--black);border-bottom-color:var(--black)}
.pc-table{width:100%;border-collapse:collapse;font-size:13px}
.pc-table th{font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-400);background:var(--gray-50);padding:12px 20px;border-bottom:1px solid var(--gray-100);text-align:left}
.pc-table td{padding:12px 20px;border-bottom:1px solid var(--gray-100);color:var(--gray-700);font-size:13px}
.pc-table tbody tr:last-child td{border-bottom:none}
.pc-table tbody tr:hover td{background:var(--gray-50)}
.pc-registro-card{display:flex;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--gray-100);background:#fff;transition:background .15s}
.pc-registro-card:hover{background:var(--gray-50)}
.pc-registro-card:last-child{border-bottom:none}
.pc-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;margin-bottom:24px}
.pc-stat{background:var(--gray-100);border-radius:12px;padding:16px;text-align:center}
.pc-stat-val{font-size:22px;font-weight:800;color:var(--black);line-height:1}
.pc-stat-label{font-size:10px;font-weight:600;letter-spacing:1px;color:var(--gray-400);text-transform:uppercase;margin-top:4px}
.pc-stat-sub{font-size:9px;color:var(--gray-300);margin-top:1px}
.pc-bar-wrap{display:flex;align-items:flex-end;gap:6px;height:90px;margin-top:8px}
.pc-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.pc-bar{width:100%;background:var(--black);border-radius:4px 4px 0 0;transition:height .4s}
.pc-bar-val{font-size:9px;font-weight:700;color:var(--black)}
.pc-bar-date{font-size:8px;color:var(--gray-400);text-align:center;line-height:1.2;max-width:48px;word-break:break-word}
.pc-delta-badge{font-size:13px;font-weight:700}

/* Print-only elements: ocultos en pantalla */
.print-logo-header{display:none}
.print-logo-img{height:36px;width:auto}
.print-footer{display:none}

/* ── MOBILE MENU ── */
#mobileMenuBtn{display:none}
#mobileMenuOverlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:900;flex-direction:column;align-items:center;justify-content:center;gap:28px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
#mobileMenuOverlay.visible{display:flex}
#mobileMenuOverlay .mob-link{font-size:16px;font-weight:600;letter-spacing:2px;color:rgba(255,255,255,.6);text-transform:uppercase;cursor:pointer;padding:12px 24px;transition:color .2s;font-family:'Inter',sans-serif}
#mobileMenuOverlay .mob-link:hover,#mobileMenuOverlay .mob-link:active{color:#fff}
#mobileMenuClose{position:absolute;top:20px;right:24px;font-size:28px;color:rgba(255,255,255,.4);cursor:pointer;line-height:1}

/* ── RESPONSIVE ── */
@media(max-width:640px){
  /* Header: hide desktop nav, show hamburger */
  #headerNav{display:none!important}
  #mobileMenuBtn{display:flex!important;align-items:center;justify-content:center;width:32px;height:32px;cursor:pointer;flex-shrink:0}
  #siteHeader{padding:0 16px!important;height:50px!important}
  #siteHeader img[alt="Oráculo"]{height:20px!important}
  #userBadgeName{font-size:9px!important;letter-spacing:1px!important}

  /* Dashboard sections */
  #dashboardSection{padding-top:50px!important}
  #dashboardSection > div:first-child{padding:50px 0 30px!important}
  #dashboardSection [style*="max-width:580px"]{padding:0 20px!important}
  #dashboardSection [style*="padding:48px"]{padding:32px 0!important}

  /* Chat */
  .chat-section{padding:54px 16px 16px!important}
  .chat-bubble{max-width:88%!important;font-size:13px!important}
  .chat-input{padding:12px 16px!important;font-size:13px!important}
  .chat-send{padding:12px 16px!important;font-size:13px!important}
  .chat-options{gap:6px!important}
  .chat-option{padding:8px 14px!important;font-size:12px!important}

  /* Exercise dictionary */
  #exerciseDictSection{padding-top:54px!important}
  #exerciseDictSection > div{padding:0 16px 30px!important}

  /* Auth */
  #authSection{padding-top:70px!important;padding-left:16px!important;padding-right:16px!important}
  .auth-box{padding:24px!important}

  /* Landing */
  #landingSection{padding-top:50px!important}

  /* Settings panel full width on mobile */
  #settingsPanel{width:100%!important;max-width:100%!important;padding:20px!important}
}

@media(max-width:380px){
  /* Extra small phones (iPhone SE) */
  #siteHeader{gap:8px!important}
  .chat-bubble{max-width:92%!important;padding:10px 14px!important;font-size:12.5px!important}
  .chat-avatar{width:28px!important;height:28px!important;min-width:28px!important}
}

@media(min-width:641px) and (max-width:1024px){
  /* Tablet tweaks */
  #settingsPanel{width:380px!important}
}

@media print{
  /* ── Landscape en pantallas grandes, portrait en móvil ── */
  @page{size:auto;margin:8mm 8mm 14mm}
  html,body{height:auto!important;min-height:0!important;overflow:visible!important}
  body{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:9px}
  /* Prevent hidden sections from taking space */
  #dashboardSection,#onboardingSection,#formSection,#progressSection,#paywallSection{display:none!important;height:0!important;overflow:hidden!important}
  /* Ocultar todo lo que no es el plan */
  #siteHeader,#coachHeader,#coachTabNav,.form-section,.actions,.format-switcher,#hybridFormat,
  .add-btn,.add-opts,.remove-act,.ex-del,.swap-btn,#dragHint,
  #historialSection,#perfilClinicoSection,#landingSection,#authSection,
  #coachPinOverlay,#charlyWidget,#chatSection,#userBadge,#coachIconBtn,
  .stats-bar,#dayCardsSection,#clientTopBar .client-action-btn,
  #dayDetailOverlay,#clientTopBar{display:none!important}
  .calendar-section.visible{padding-top:12px!important}
  /* Forzar weekCalendar visible en print (override mobile hide + client-locked hide) */
  #weekCalendar,.client-locked #weekCalendar{display:grid!important;grid-template-columns:repeat(7,1fr)!important}
  .client-locked .coach-footer{display:block!important}
  /* Logo header */
  .print-logo-header{display:flex!important;align-items:center;margin-bottom:6px;padding-bottom:6px;border-bottom:1.5px solid #111}
  /* Footer oraculo.co */
  .print-footer{display:flex!important;position:static;margin-top:8px;padding:4px 0;justify-content:space-between;font-size:7px;font-weight:600;letter-spacing:2px;color:#d4d4d4;text-transform:lowercase}
  .stat-item{cursor:default!important}
  .stat-item:hover{background:var(--gray-100)!important}
  .km-input,.edit-inline{border:none!important;background:transparent!important;padding:0!important}
  .edit-name{font-weight:600!important;font-size:8px!important}
  .edit-equip{font-size:6px!important;color:var(--gray-400)!important}
  .edit-detail{font-size:7px!important;color:var(--gray-500)!important}
  .ex-equip{font-size:6px!important}
  .calendar-section{display:block!important;padding-top:0!important}
  .header{padding:8px 0;margin-bottom:0}
  .logo-img{height:35px}
  .divider{margin:8px auto 0}
  .calendar-header{margin-bottom:8px}
  .calendar-header h2{font-size:18px}
  .user-badge{padding:6px 12px}
  .user-badge-name{font-size:11px}
  .user-badge-detail{font-size:9px}
  .stats-bar{margin-bottom:8px;gap:4px}
  .stat-item{padding:6px 4px}
  .stat-value{font-size:13px}
  .stat-label{font-size:7px;margin-top:1px}
  .container{max-width:100%;padding:0 4px}
  .coach-footer{margin-top:4px;padding:5px 8px}

  /* ── Grid de días: 7 columnas en landscape, adaptable en móvil ── */
  .week-calendar{gap:3px;grid-template-columns:repeat(7,1fr)!important}
  .week-day{cursor:default!important;min-height:auto!important;border:1px solid #ddd;page-break-inside:avoid;break-inside:avoid;overflow:visible}
  .week-day:hover{transform:none;box-shadow:none}
  .week-day-header{padding:4px}
  .week-day-name{font-size:8px;letter-spacing:1px}
  .week-day-tag{font-size:6px;padding:2px 5px;margin-top:2px}
  .week-day-body{padding:4px 5px}
  .session-label{font-size:6px;padding:3px 5px 1px;letter-spacing:1px}
  .session-divider{height:1px}
  .session-hdr{padding:3px 5px 2px;gap:4px}
  .session-time{font-size:5px;min-width:12px}
  .session-tag-inline{font-size:6px;padding:1px 6px}
  .ex-row{padding:2px 0;gap:4px;align-items:flex-start}
  .ex-num{width:14px;height:14px;min-width:14px;font-size:7px;flex-shrink:0;margin-top:1px}
  .ex-info{min-width:0;flex:1}
  .ex-name{font-size:8px;white-space:normal!important;word-wrap:break-word;overflow-wrap:anywhere;line-height:1.3}
  .ex-detail{font-size:7px;white-space:normal!important;word-wrap:break-word;overflow-wrap:anywhere;line-height:1.3}
  .drink-recs{border-top:1px solid #ddd}
  .drink-rec{padding:3px 5px}
  .drink-rec-label{font-size:5px;letter-spacing:1px;margin-bottom:1px}
  .drink-rec-name{font-size:7px}
  .drink-rec-desc{font-size:6px}
  .coach-footer{margin-top:8px;padding:8px;border-top:1px solid #ddd}
  .coach-label{font-size:7px}
  .coach-name{font-size:12px;margin-top:2px}
  .rest-message{padding:8px 4px}
  .rest-icon{font-size:16px;margin-bottom:2px}
  .rest-text{font-size:8px;margin-bottom:0}
}

/* ── Print en móvil/tablet: portrait, 2-3 columnas ── */
@media print and (max-width:700px){
  @page{size:portrait;margin:6mm 5mm 12mm}
  .week-calendar{grid-template-columns:repeat(3,1fr)!important;gap:4px!important}
  .week-day{page-break-inside:avoid;break-inside:avoid}
  .ex-name{font-size:9px!important}
  .ex-detail{font-size:8px!important}
  .drink-rec-name{font-size:8px!important}
  .stats-bar{grid-template-columns:repeat(4,1fr)!important}
  .stat-value{font-size:11px!important}
}
@media(max-width:900px){.week-calendar{grid-template-columns:repeat(3,1fr)} #dayCardsGrid{grid-template-columns:repeat(4,1fr)!important}}
@media(max-width:640px){
  .card{padding:20px}.form-grid{grid-template-columns:1fr 1fr}.week-calendar{grid-template-columns:1fr 1fr}
  .pills{gap:8px}.pill{padding:8px 14px;font-size:12px}.stats-bar{grid-template-columns:repeat(3,1fr)}
  #dayCardsGrid{grid-template-columns:1fr!important;gap:10px!important}
}
@media screen and (max-width:640px){
  /* Mobile client: hide weekCalendar, only show dayCards (screen only, not print) */
  .client-locked #weekCalendar{display:none!important}
  .client-locked #dragHint{display:none!important}
  .client-locked .coach-footer{display:none!important}
}
@media(max-width:400px){#dayCardsGrid{grid-template-columns:1fr!important}}
/* Day detail slide-up animation */
#dayDetailOverlay{transition:opacity .3s ease}
#dayDetailOverlay.opening{opacity:0}
#dayDetailPanel{transition:transform .3s cubic-bezier(.32,.72,0,1)}
#dayDetailOverlay.opening #dayDetailPanel{transform:translateY(60px)}
/* Desktop: center the detail panel */
@media(min-width:641px){
  #dayCardsGrid{grid-template-columns:repeat(7,1fr)}
  #dayDetailOverlay{align-items:center!important;padding:16px!important}
  #dayDetailPanel{border-radius:20px!important;max-height:85vh!important}
}

/* LANDING */
.landing-section{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;padding:40px 24px}
.landing-title{font-family:'Playfair Display',serif;font-size:42px;font-weight:900;color:var(--black);margin-bottom:8px}
.landing-subtitle{font-size:14px;color:var(--gray-400);letter-spacing:2px;text-transform:uppercase;margin-bottom:60px}
.landing-cards{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;max-width:700px}
.landing-card{flex:1;min-width:260px;max-width:320px;background:var(--white);border:1.5px solid var(--gray-200);border-radius:var(--radius);padding:40px 32px;cursor:pointer;transition:all .3s;text-align:left}
.landing-card:hover{border-color:var(--black);box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.landing-card.primary{background:var(--black);border-color:var(--black)}
.landing-card.primary .lc-title,.landing-card.primary .lc-desc{color:var(--white)}
.landing-card.primary .lc-icon{background:rgba(255,255,255,.1)}
.lc-icon{width:48px;height:48px;background:var(--gray-100);border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;font-size:22px}
.lc-title{font-size:18px;font-weight:700;color:var(--black);margin-bottom:8px}
.lc-desc{font-size:13px;color:var(--gray-500);line-height:1.6}

/* ONBOARDING QUIZ */
.onb-step{animation:fadeUp .4s ease}
.onb-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.1);transition:all .3s}
.onb-dot.active{width:24px;border-radius:4px;background:#c8f542}
.onb-dot.done{background:rgba(200,245,66,.4)}
.onb-card{background:rgba(255,255,255,.04);border:2px solid rgba(255,255,255,.08);border-radius:16px;padding:28px 16px;text-align:center;cursor:pointer;transition:all .3s}
.onb-card:hover{border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.06);transform:translateY(-2px)}
.onb-card.selected{border-color:#c8f542;background:rgba(200,245,66,.06)}
.onb-card-photo{position:relative;overflow:hidden;padding:0;min-height:180px;background-size:cover;background-position:center;display:flex;align-items:flex-end}
.onb-card-photo:hover{transform:none;border-color:#c8f542;background-size:cover}
.onb-card-photo .onb-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.2) 50%,rgba(0,0,0,.05) 100%);z-index:1;transition:all .3s}
.onb-card-photo:hover .onb-card-overlay{background:linear-gradient(to top,rgba(0,0,0,.65) 0%,rgba(0,0,0,.1) 50%,rgba(0,0,0,0) 100%)}
.onb-card-photo .onb-card-content{position:relative;z-index:2;padding:20px 16px;width:100%;text-align:left}
.onb-card-photo.selected{border-color:#c8f542;box-shadow:0 0 20px rgba(200,245,66,.2)}
.onb-card-photo.selected .onb-card-overlay{background:linear-gradient(to top,rgba(200,245,66,.15) 0%,rgba(0,0,0,.2) 50%,rgba(0,0,0,.05) 100%)}
.onb-goal{background:rgba(255,255,255,.04);border:2px solid rgba(255,255,255,.08);border-radius:14px;padding:18px 20px;cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:14px}
.onb-goal:hover{border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.06)}
.onb-goal.selected{border-color:#c8f542;background:rgba(200,245,66,.06)}

/* CHAT */
.chat-section{display:none;max-width:620px;margin:0 auto;padding:70px 24px 24px;height:100vh;box-sizing:border-box;flex-direction:column;background:#0f0f0f}
.chat-section.visible{display:flex}
.chat-window{background:#1a1a1a;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);flex:1;overflow-y:auto;padding:24px 24px 16px;display:flex;flex-direction:column;gap:16px;margin-bottom:12px;min-height:0}
.typing-indicator{display:flex;gap:4px;align-items:center;padding:14px 18px;background:rgba(255,255,255,.08);border-radius:18px;border-top-left-radius:4px;width:fit-content}
.typing-dot{width:7px;height:7px;background:rgba(255,255,255,.3);border-radius:50%;animation:typingBounce 1.2s infinite ease-in-out}
.typing-dot:nth-child(1){animation-delay:0s}
.typing-dot:nth-child(2){animation-delay:.2s}
.typing-dot:nth-child(3){animation-delay:.4s}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}
.chat-msg{display:flex;gap:12px;animation:fadeUp .4s ease}
.chat-msg.bot{align-items:flex-start}
.chat-msg.user{flex-direction:row-reverse}
.chat-avatar{width:32px;height:32px;min-width:32px;background:var(--black);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px}
.chat-bubble{max-width:80%;padding:14px 18px;border-radius:18px;font-size:14px;line-height:1.6}
.bot .chat-bubble{background:rgba(255,255,255,.08);color:rgba(255,255,255,.85);border-top-left-radius:4px}
.user .chat-bubble{background:#fff;color:#111;border-top-right-radius:4px}
.chat-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chat-option{padding:10px 18px;border:1.5px solid rgba(255,255,255,.15);border-radius:50px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;background:transparent;color:rgba(255,255,255,.7)}
.chat-option:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);color:#fff}
.chat-option.selected{background:#fff;color:#111;border-color:#fff}
.chat-option.selected:hover{background:rgba(255,255,255,.9);border-color:rgba(255,255,255,.9);color:#111}
.chat-option.multi.selected{background:#fff;color:#111}
.chat-input-row{display:flex;gap:10px}
.chat-input{flex:1;padding:14px 18px;border:1.5px solid rgba(255,255,255,.15);border-radius:50px;font-family:'Inter',sans-serif;font-size:14px;outline:none;transition:border-color .2s;background:rgba(255,255,255,.05);color:#fff}
.chat-input::placeholder{color:rgba(255,255,255,.3)}
.chat-input:focus{border-color:rgba(255,255,255,.4)}
.chat-send{padding:14px 20px;background:#fff;color:#111;border:none;border-radius:50px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}
.chat-send:hover{opacity:.85}
.chat-locked{background:#fff8e1;border:1px solid #f9a825;border-radius:var(--radius);padding:24px;text-align:center;margin-top:20px}
.chat-locked-title{font-size:16px;font-weight:700;color:#5d4037;margin-bottom:8px}
.chat-locked-desc{font-size:13px;color:#795548}
.coach-pin-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);z-index:1000;align-items:center;justify-content:center}
.coach-pin-overlay.visible{display:flex}
.pin-box{background:var(--white);border-radius:var(--radius);padding:48px 40px;text-align:center;max-width:380px;width:90%}
.pin-title{font-family:'Playfair Display',serif;font-size:24px;font-weight:800;margin-bottom:8px}
.pin-subtitle{font-size:13px;color:var(--gray-500);margin-bottom:28px}
.pin-input{width:100%;padding:14px 18px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:16px;font-family:'Inter',sans-serif;text-align:center;letter-spacing:4px;outline:none;margin-bottom:12px}
.pin-input:focus{border-color:var(--black)}
.pin-btn{width:100%;padding:14px;background:var(--black);color:var(--white);border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer}
.pin-error{font-size:12px;color:#e53935;margin-top:8px;display:none}
.pin-back{font-size:12px;color:var(--gray-400);cursor:pointer;margin-top:16px;display:block}
.pin-back:hover{color:var(--gray-800)}

/* AUTH (Marchon-style split) */
.auth-box{width:100%;max-width:380px;background:#1a1a1a;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:32px;box-shadow:0 4px 32px rgba(0,0,0,.3)}
.auth-tabs{display:flex;background:rgba(255,255,255,.06);border-radius:12px;padding:4px;margin-bottom:28px;gap:4px}
.auth-tab{flex:1;padding:9px;border:none;background:transparent;border-radius:9px;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;color:rgba(255,255,255,.4);cursor:pointer;transition:all .2s}
.auth-tab.active{background:rgba(255,255,255,.1);color:#fff;box-shadow:none}
.auth-field{margin-bottom:16px}
.auth-field label{display:block;font-size:11px;font-weight:700;letter-spacing:1px;color:rgba(255,255,255,.4);text-transform:uppercase;margin-bottom:6px}
.auth-field input{width:100%;padding:12px 14px;border:1.5px solid rgba(255,255,255,.12);border-radius:10px;font-family:'Inter',sans-serif;font-size:14px;font-weight:500;color:#fff;background:rgba(255,255,255,.05);outline:none;transition:border-color .2s}
.auth-field input:focus{border-color:rgba(255,255,255,.4)}
.auth-field input::placeholder{color:rgba(255,255,255,.25);font-weight:400}
.auth-btn{width:100%;padding:14px;background:#fff;color:#111;border:none;border-radius:12px;font-family:'Inter',sans-serif;font-size:14px;font-weight:700;cursor:pointer;margin-top:8px;transition:opacity .2s}
.auth-btn:hover{opacity:.85}
.auth-btn:disabled{opacity:.5;cursor:not-allowed}

/* Marchon-style auth fields (white bg) */
.auth-field-marchon{margin-bottom:16px}
.auth-field-marchon input{width:100%;padding:16px 18px;border:2px solid #ddd;border-radius:12px;font-family:'Inter',sans-serif;font-size:15px;font-weight:500;color:#111;background:#fff;outline:none;transition:border-color .2s;box-sizing:border-box}
.auth-field-marchon input:focus{border-color:#111}
.auth-field-marchon input::placeholder{color:#aaa;font-weight:400}
.auth-btn-marchon{width:100%;padding:16px;background:#111;color:#fff;border:none;border-radius:50px;font-family:'Inter',sans-serif;font-size:14px;font-weight:800;letter-spacing:1px;cursor:pointer;margin-top:8px;transition:all .2s;text-transform:uppercase}
.auth-btn-marchon:hover{background:#333}
.auth-btn-marchon:disabled{opacity:.5;cursor:not-allowed}

/* Auth split layout (Marchon 50/50) */
.auth-split-wrap{display:flex;min-height:100vh;width:100%}
.auth-photo-side{width:50%!important;min-width:50%!important;max-width:50%!important;min-height:100vh;flex:none!important}
.auth-form-side{width:50%!important;min-width:50%!important;max-width:50%!important;min-height:100vh;flex:none!important}

@media(max-width:768px){
  .auth-split-wrap{flex-direction:column}
  .auth-photo-side{display:none!important}
  .auth-form-side{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:100vh;padding:40px 24px!important}
}

/* COACH TABS */
.coach-tab{padding:14px 24px;border:none;background:none;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;color:#aaa;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}
.coach-tab:hover{color:#555}
.coach-tab.active{color:#111;border-bottom-color:#111}

/* Popup animations */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
