:root{--ink:#17302b;--forest:#123c34;--forest-2:#1b574c;--cream:#f7f5ef;--paper:#fff;--amber:#f3b95f;--amber-soft:#fff2d9;--line:#dce5e0;--muted:#687b75;--danger:#b83b3b;--shadow:0 18px 50px rgba(18,60,52,.10);--radius:22px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--cream);font-family:"DM Sans",system-ui,sans-serif;font-size:16px;line-height:1.5}
button,input{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
.hidden{display:none!important}
.eyebrow{margin:0 0 10px;font-size:.78rem;font-weight:800;letter-spacing:.14em}
.eyebrow.dark{color:var(--forest-2)}
h1,h2{font-family:"Manrope",sans-serif;letter-spacing:-.035em;margin-top:0}
.auth-shell{min-height:100svh;display:grid;grid-template-columns:1.05fr .95fr}
.auth-brand{background:var(--forest);color:#fff;padding:clamp(32px,6vw,88px);display:flex;flex-direction:column;justify-content:center;gap:clamp(48px,9vh,100px);position:relative;overflow:hidden}
.auth-brand:after{content:"";position:absolute;width:380px;height:380px;border:1px solid rgba(255,255,255,.15);border-radius:48% 52% 61% 39%;right:-120px;bottom:-150px;transform:rotate(20deg)}
.brand-logo-hero{width:124px;height:124px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.96);box-shadow:0 12px 35px rgba(0,0,0,.16);overflow:hidden;position:relative;z-index:1}
.brand-logo-hero img{display:block;width:100%;height:100%;object-fit:contain;transform:scale(.98)}
.auth-brand h1{font-size:clamp(2.4rem,5vw,4.7rem);line-height:1.02;max-width:670px;margin-bottom:24px}
.brand-copy{font-size:1.15rem;color:#dce9e5;max-width:560px}
.brand-note{border-top:1px solid rgba(255,255,255,.22);padding-top:20px;max-width:390px}
.brand-note span{font-weight:700;color:var(--amber)}
.brand-note p{margin:4px 0 0;color:#c6d8d3}
.auth-panel{display:grid;place-items:center;padding:32px;background:var(--paper)}
.auth-card{width:min(440px,100%)}
.auth-card h2{font-size:2rem;margin-bottom:8px}
.muted{color:var(--muted);margin-top:0}
.auth-card form{margin-top:30px}
.auth-card label{display:block;font-weight:700;font-size:.92rem;margin:18px 0 8px}
.auth-card input{width:100%;min-height:52px;border:1px solid #cdd9d4;border-radius:13px;padding:0 15px;background:#fbfcfb;color:var(--ink);outline:none}
.auth-card input:focus{border-color:var(--forest-2);box-shadow:0 0 0 4px rgba(27,87,76,.10)}
.password-wrap{position:relative}
.password-wrap input{padding-right:86px}
.show-password{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--forest-2);font-weight:700;font-size:.82rem;cursor:pointer}
.primary-button,.light-button,.ghost-button,.text-button{border:0;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-weight:800}
.primary-button{width:100%;min-height:52px;background:var(--forest);color:#fff;border-radius:13px;margin-top:20px;padding:0 22px}
.primary-button:hover{background:var(--forest-2)}
.primary-button:disabled{opacity:.6;cursor:wait}
.primary-button.compact{width:auto;min-width:160px;margin:0}
.text-button{background:transparent;color:var(--forest-2);padding:14px 0;margin-top:8px}
.form-error{min-height:22px;margin:10px 0 0;color:var(--danger);font-size:.9rem}
.toast{position:fixed;top:20px;left:50%;transform:translate(-50%,-20px);opacity:0;z-index:100;background:var(--ink);color:#fff;border-radius:12px;padding:12px 18px;box-shadow:var(--shadow);transition:.25s;pointer-events:none;max-width:calc(100vw - 32px);text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
.topbar{height:74px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:20}
.logo-lockup{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font:800 1rem "Manrope"}
.brand-logo-small{display:block;width:46px;height:46px;object-fit:contain;clip-path:circle(49%);transform:scale(.98);flex:0 0 46px}
.topbar-actions{display:flex;align-items:center;gap:14px}
.client-mini-name{font-weight:700}
.ghost-button{background:#edf3f0;color:var(--forest);border-radius:11px;padding:10px 15px}
.portal-layout{min-height:calc(100svh - 74px);display:grid;grid-template-columns:230px 1fr}
.side-nav{background:var(--paper);border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column;gap:8px}
.nav-item{display:flex;gap:12px;align-items:center;padding:12px 14px;color:#526660;text-decoration:none;border-radius:12px;font-weight:700}
.nav-item span{width:22px;text-align:center;font-size:1.15rem}
.nav-item:hover,.nav-item.active{background:#edf3f0;color:var(--forest)}
.content{padding:clamp(24px,4vw,56px);max-width:1250px;width:100%;margin:0 auto}
.welcome-row{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:32px}
.welcome-row h1,.page-heading h1{font-size:clamp(2rem,4vw,3.25rem);margin:0 0 10px}
.lead,.page-heading p{color:var(--muted);font-size:1.05rem;margin:0}
.phase-pill{background:var(--amber-soft);border:1px solid #f4d49a;border-radius:15px;padding:13px 17px;min-width:150px}
.phase-pill span{display:block;font-size:.78rem;color:#88661f}
.phase-pill strong{display:block;margin-top:3px}
.focus-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}
.objective-card,.review-card,.tasks-card,.resource-feature,.review-action-card{border-radius:var(--radius);padding:26px}
.objective-card,.tasks-card,.resource-feature,.review-action-card{background:var(--paper);border:1px solid var(--line)}
.review-card{background:var(--forest);color:#fff}
.card-kicker{font-size:.76rem;font-weight:800;letter-spacing:.12em;color:var(--forest-2);margin-bottom:14px}
.card-kicker.light{color:var(--amber)}
.objective-card h2,.review-card h2{font-size:1.55rem;margin-bottom:10px}
.objective-card p{margin:0;color:var(--muted)}
.review-card p{color:#d5e4df}
.light-button{min-height:45px;background:#fff;color:var(--forest);border-radius:11px;padding:0 17px;margin-top:12px}
.tasks-card{margin-top:18px}
.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}
.section-heading h2{margin:0}
.count-pill,.status-badge{display:inline-flex;border-radius:999px;background:#edf3f0;color:var(--forest-2);padding:5px 10px;font-weight:800;font-size:.75rem}
.task-list{list-style:none;padding:0;margin:20px 0 0}
.task-list li{display:flex;gap:13px;padding:14px 0;border-top:1px solid var(--line)}
.task-list li:before{content:"";width:20px;height:20px;flex:0 0 20px;border:2px solid #8aa39b;border-radius:7px;margin-top:2px}
.dashboard-section{display:none;animation:fade .2s ease}
.dashboard-section.active-section{display:block}
.page-heading{margin-bottom:28px}
.resource-feature,.review-action-card{display:flex;align-items:center;gap:22px}
.resource-symbol{width:58px;height:58px;border-radius:17px;background:var(--amber-soft);display:grid;place-items:center;font-size:1.5rem;flex:0 0 auto}
.resource-feature>div:nth-child(2),.review-action-card>div{flex:1}
.resource-feature h2,.review-action-card h2{margin:8px 0 5px}
.resource-feature p,.review-action-card p{margin:0;color:var(--muted)}
.status-badge.amber{background:var(--amber-soft);color:#805c17}
.resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.resource-item{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:22px;text-decoration:none;color:var(--ink);display:block}
.resource-item:hover{border-color:#9db1aa;transform:translateY(-1px)}
.resource-item span{color:var(--forest-2);font-size:.8rem;font-weight:800}
.resource-item h2{font-size:1.12rem;margin:8px 0 4px}
.resource-item p{color:var(--muted);margin:0;font-size:.92rem}
.disabled-link{opacity:.45;pointer-events:none}
.loading-state,.empty-state{min-height:55vh;display:grid;place-items:center;align-content:center;text-align:center}
.empty-state{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:32px}
.empty-state p{color:var(--muted);max-width:480px}
.empty-icon{font-size:2.5rem;color:var(--forest-2)}
.spinner{width:36px;height:36px;border-radius:50%;border:3px solid #d7e2de;border-top-color:var(--forest);animation:spin .8s linear infinite}
.mobile-nav{display:none}
.plan-meta{display:flex;align-items:center;gap:12px;margin-bottom:16px}.weekly-plan-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 28px rgba(18,60,52,.04)}.weekly-plan-table{width:100%;min-width:1050px;border-collapse:collapse;table-layout:fixed}.weekly-plan-table th,.weekly-plan-table td{padding:14px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;text-align:left;font-size:.86rem;white-space:normal}.weekly-plan-table thead th{background:#edf3f0;color:var(--forest);font-weight:800}.weekly-plan-table tbody th{background:#fbfcfb;width:125px;color:var(--forest)}.weekly-plan-table tr:last-child>*{border-bottom:0}.weekly-plan-table tr>*:last-child{border-right:0}.weekly-plan-mobile{display:none}.equivalences-card,.training-card,.review-embed-card{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:25px}.formatted-content{line-height:1.7;overflow-wrap:anywhere}.equivalences-card .formatted-content{margin-top:18px}.recipe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.recipe-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.recipe-card summary{list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px;cursor:pointer;font:800 1.05rem "Manrope"}.recipe-card summary::-webkit-details-marker{display:none}.recipe-card summary small{display:block;color:var(--forest-2);font:800 .7rem "DM Sans";letter-spacing:.12em;margin-bottom:5px}.recipe-open{font:800 .78rem "DM Sans";color:var(--forest-2);background:#edf3f0;border-radius:999px;padding:6px 10px}.recipe-card[open] .recipe-open{font-size:0}.recipe-card[open] .recipe-open:after{content:"Cerrar";font-size:.78rem}.recipe-body{border-top:1px solid var(--line);padding:20px}.recipe-body h3{margin:20px 0 8px;font:800 .95rem "Manrope"}.recipe-body h3:first-of-type{margin-top:8px}.recipe-note{margin:0;background:var(--amber-soft);border-radius:12px;padding:11px 13px}.training-card{margin-top:0}.training-card.empty-training{color:var(--muted);background:var(--amber-soft)}.review-embed-card{padding:0;overflow:hidden}.review-embed-heading{padding:20px 22px 0}.review-embed-heading p{color:var(--muted);margin:10px 0 0}.review-embed-card iframe{display:block;width:100%;height:980px;border:0;background:transparent}.admin-diet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0}.admin-day-card,.admin-recipe-editor{border:1px solid var(--line);border-radius:16px;padding:17px;background:#fbfcfb}.admin-day-card h3{margin:0 0 14px;font-size:1rem}.admin-day-card label{margin-top:11px}.admin-day-card textarea{min-height:78px}.admin-recipe-list{display:flex;flex-direction:column;gap:14px}.admin-recipe-editor textarea{min-height:105px}.recipe-editor-actions{display:flex;gap:12px;align-items:center;margin-top:14px}.recipe-editor-actions .text-button{margin:0;padding:10px}.danger-text{color:var(--danger)}
@keyframes spin{to{transform:rotate(360deg)}
}
@keyframes fade{from{opacity:0;transform:translateY(5px)}
to{opacity:1;transform:none}
}
@media(max-width:800px){.auth-shell{grid-template-columns:1fr}
.auth-brand{min-height:270px;padding:28px;gap:42px}
.brand-logo-hero{width:96px;height:96px}
.auth-brand h1{font-size:2.4rem;margin-bottom:14px}
.brand-copy{font-size:1rem}
.brand-note{display:none}
.auth-panel{padding:34px 24px 48px;align-items:start}
.topbar{height:64px;padding:0 17px}
.logo-lockup span:last-child{font-size:.9rem}
.client-mini-name{display:none}
.portal-layout{display:block;min-height:calc(100svh - 126px)}
.side-nav{display:none}
.content{padding:26px 18px 105px}
.welcome-row{display:block}
.phase-pill{display:inline-block;margin-top:20px}
.focus-grid{grid-template-columns:1fr}
.objective-card,.review-card,.tasks-card,.resource-feature,.review-action-card{padding:21px}
.section-heading{align-items:flex-start}
.resource-feature,.review-action-card{align-items:flex-start;flex-wrap:wrap}
.resource-feature .primary-button,.review-action-card .primary-button{width:100%;margin-top:8px}
.resource-grid{grid-template-columns:1fr}
.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);bottom:0;left:0;right:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
.mobile-nav.five-items{grid-template-columns:repeat(5,1fr)}
.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:#72847f;font-size:.78rem;font-weight:700;padding:5px 2px}
.mobile-nav-item span{font-size:1.1rem}
.mobile-nav-item.active{color:var(--forest)}
.weekly-plan-wrap{display:none}.weekly-plan-mobile{display:flex;flex-direction:column;gap:14px}.day-plan-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.day-plan-card h2{font-size:1.2rem;margin-bottom:8px;color:var(--forest)}.day-plan-card>div{padding:12px 0;border-top:1px solid var(--line)}.day-plan-card strong{font-size:.82rem;color:var(--forest-2)}.day-plan-card p{margin:4px 0 0;line-height:1.45}.equivalences-card,.training-card{padding:20px}.recipe-grid{grid-template-columns:1fr}.review-embed-card iframe{height:1120px}.review-embed-heading{padding:18px 18px 0}
}
@media(max-width:420px){.auth-brand{min-height:245px}
.auth-brand h1{font-size:2.05rem}
.logo-lockup span:last-child{display:none}
.welcome-row h1,.page-heading h1{font-size:2rem}
}
.process-card{margin-top:18px;background:linear-gradient(135deg,#eef5f2,#fff8e9);border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.process-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}
.process-step{display:flex;gap:12px;background:rgba(255,255,255,.72);border:1px solid rgba(18,60,52,.10);border-radius:15px;padding:15px}
.process-step>span{width:30px;height:30px;flex:0 0 30px;border-radius:50%;display:grid;place-items:center;background:#e1e9e5;color:#667b74;font-weight:800}
.process-step strong{display:block;font-size:.92rem}
.process-step p{margin:3px 0 0;color:var(--muted);font-size:.83rem;line-height:1.35}
.process-step.is-done>span{background:var(--forest);color:#fff;font-size:0}
.process-step.is-done>span:after{content:"✓";font-size:.9rem}
.process-step.is-current{border-color:#e7bd6d;background:#fffaf0}
.process-step.is-current>span{background:var(--amber);color:var(--forest)}
.process-note,.section-help{margin:18px 0 0;color:var(--muted);font-size:.92rem}
.section-help{background:var(--amber-soft);border:1px solid #f0d59f;border-radius:14px;padding:15px 17px}
.resource-item.static:hover{border-color:var(--line);transform:none}
@media(max-width:800px){
  .process-card{padding:21px}
  .process-steps{grid-template-columns:1fr}
  .process-card .section-heading{display:block}
  .process-card .status-badge{margin-top:12px}
}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.admin-shell{min-height:100svh;background:#eef3f1}
.admin-layout{display:grid;grid-template-columns:minmax(280px,340px) 1fr;min-height:calc(100svh - 74px)}
.admin-clients{background:var(--paper);border-right:1px solid var(--line);padding:34px 24px;position:sticky;top:74px;height:calc(100svh - 74px);overflow:auto}
.admin-clients h1{font-size:1.65rem;margin-bottom:8px}
.admin-search,.admin-form input,.admin-form textarea{width:100%;border:1px solid #cdd9d4;border-radius:12px;padding:12px 14px;background:#fbfcfb;color:var(--ink);outline:none;font:inherit}
.admin-search{margin:20px 0 14px}
.admin-search:focus,.admin-form input:focus,.admin-form textarea:focus{border-color:var(--forest-2);box-shadow:0 0 0 4px rgba(27,87,76,.10)}
.client-list{display:flex;flex-direction:column;gap:8px}
.client-row{border:1px solid var(--line);background:#fff;text-align:left;border-radius:13px;padding:13px 14px;color:var(--ink);cursor:pointer}
.client-row span,.client-row small{display:block}
.client-row span{font-weight:800}
.client-row small{margin-top:2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.client-row:hover,.client-row.active{border-color:#98aea7;background:#edf3f0}
.client-row.active{box-shadow:inset 4px 0 0 var(--forest)}
.client-list-empty{color:var(--muted);font-size:.92rem}
.admin-workspace{padding:clamp(24px,4vw,54px);max-width:1120px;width:100%;margin:0 auto}
.admin-form{display:flex;flex-direction:column;gap:18px}
.admin-form-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:6px}
.admin-form-heading h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:5px}
.admin-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:25px;box-shadow:0 8px 28px rgba(18,60,52,.04)}
.admin-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}
.admin-card-heading h2{margin:0;font-size:1.35rem}
.admin-card-heading>span{color:var(--muted);font-size:.84rem;text-align:right}
.admin-grid{display:grid;gap:16px}
.admin-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
.admin-form label{display:block;font-weight:800;font-size:.9rem;margin-top:15px}
.admin-form label:first-child{margin-top:0}
.admin-form label input,.admin-form label textarea{display:block;margin-top:7px;font-weight:400}
.admin-form textarea{resize:vertical;min-height:130px}
.admin-form small{display:block;color:var(--muted);font-weight:400;margin-top:6px}
.resource-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.resource-check{display:flex!important;gap:11px;align-items:flex-start;border:1px solid var(--line);border-radius:13px;padding:13px;margin:0!important;cursor:pointer}
.resource-check:has(input:checked){background:#edf3f0;border-color:#8ca69e}
.resource-check input{width:18px!important;height:18px;margin:2px 0 0!important;flex:0 0 auto}
.resource-check strong,.resource-check small{display:block}
.resource-check small{line-height:1.35}
.new-resource-box{margin-top:20px;border-top:1px solid var(--line);padding-top:20px}
.new-resource-box h3{font-family:"Manrope",sans-serif;margin:0 0 12px;font-size:1rem}
.new-resource-box .ghost-button{margin-top:14px}
.admin-save-bar{position:sticky;bottom:16px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:17px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:20px;box-shadow:var(--shadow);z-index:10}
.admin-save-bar p{margin:0;color:var(--muted);font-size:.9rem}
.admin-save-bar .primary-button{min-width:180px}
@media(max-width:900px){
  .admin-layout{grid-template-columns:1fr}
  .admin-clients{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:24px 18px}
  .client-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:240px;overflow:auto}
  .admin-workspace{padding:26px 18px 100px}
}
@media(max-width:620px){
  .admin-grid.two-columns,.resource-check-list,.client-list{grid-template-columns:1fr}
  .admin-diet-grid{grid-template-columns:1fr}
  .admin-form-heading,.admin-card-heading,.admin-save-bar{display:block}
  .admin-card-heading>span{display:block;text-align:left;margin-top:8px}
  .admin-save-bar p{margin-bottom:10px}
  .admin-save-bar .primary-button{width:100%}
}
