@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#17201b;background:#f7f8f4;font-synthesis:none;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Outfit,system-ui,sans-serif}h1{letter-spacing:-.065em}h2{letter-spacing:-.035em}h3{letter-spacing:-.025em}
.shell{max-width:1120px;margin:auto;min-height:100vh;padding:0 32px 130px}.topbar{height:90px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font:800 25px Outfit,sans-serif;letter-spacing:-.06em}.brand-mark{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#c8f36a;color:#142019;font:700 25px Outfit}.brand-dot{color:#88b737}.avatar{width:38px;height:38px;border:1px solid #dce2d7;border-radius:50%;background:#fff;color:#506051;font-size:19px}.topbar button:hover,.icon-button:hover{background:#edf4df}
main{display:grid;gap:26px}.hero{position:relative;overflow:hidden;min-height:355px;background:#141e18;border-radius:28px;color:white;padding:48px 54px;display:flex;align-items:center}.hero-copy{position:relative;z-index:1;max-width:520px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.2em;color:#75983e}.eyebrow.light{color:#c8f36a}.hero h1,.page-intro h1{font-size:clamp(45px,6.5vw,75px);line-height:.98;margin:16px 0 20px;font-weight:700}.hero h1 em,.page-intro h1 em{font-style:normal;color:#c8f36a}.hero p{max-width:360px;color:#b8c4b9;line-height:1.6;margin-bottom:28px}.hero-shape{position:absolute;width:440px;height:440px;border:90px solid #29382d;border-radius:50%;right:-80px;top:-110px;transform:rotate(-25deg)}.hero-shape:after{content:'';position:absolute;width:230px;height:230px;border:65px solid #334b32;border-radius:50%;left:-160px;bottom:-140px}.hero-shape span{position:absolute;bottom:60px;left:64px;font:800 50px Outfit;color:#4e6643}
.primary,.secondary{border:0;border-radius:12px;min-height:45px;padding:0 19px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:18px}.primary{background:#c8f36a;color:#142019}.primary:hover{background:#b9eb54}.primary span{font-size:18px}.light-button{min-width:243px;justify-content:space-between}.secondary{background:#edf4df;color:#456624}.secondary:hover{background:#e2efce}.full{width:100%}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat{background:#fff;border:1px solid #e8ece4;border-radius:20px;padding:24px 27px;display:flex;flex-direction:column;min-height:128px}.stat>span,.progress-stats span{font-size:10px;font-weight:800;letter-spacing:.16em;color:#839183}.stat strong{font:700 39px Outfit;line-height:1.2;letter-spacing:-.05em;margin-top:5px}.stat small{color:#8b968b;font-size:12px}
.block{margin-top:14px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.section-head h2{font-size:26px;margin:0 0 3px}.section-head p{font-size:13px;color:#879387;margin:0}.text-button{border:0;background:none;color:#678c35;font-size:13px;font-weight:800;white-space:nowrap}
.today-card,.plan-card,.chart-card,.list-card{background:#fff;border:1px solid #e8ece4;border-radius:19px}.today-card{padding:24px 27px;margin-bottom:13px}.today-top{display:flex;justify-content:space-between;color:#889488;font-size:12px}.tag{display:inline-flex;align-items:center;border-radius:999px;background:#f1f3ee;color:#69766c;padding:5px 9px;font-size:10px;font-weight:800;white-space:nowrap}.tag.green{background:#edf8d5;color:#618924}.today-card h3{font-size:21px;margin:16px 0 4px}.today-card p{color:#829081;font-size:13px;margin-bottom:19px}.today-exercises{display:flex;gap:7px;flex-wrap:wrap}.today-exercises span{border:1px solid #e5eadf;border-radius:7px;padding:7px 9px;font-size:11px;font-weight:700}.today-exercises:empty:after{content:'Agrega ejercicios a esta sesión desde Planes';color:#9aa49a;font-size:12px}
.list-card{padding:0 22px}.activity-row,.history-row{display:flex;align-items:center;gap:14px;min-height:67px;border-bottom:1px solid #edf0ea}.activity-row:last-child,.history-row:last-child{border-bottom:0}.activity-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eef6de;color:#719b3a;font-size:20px;flex:none}.activity-row div,.history-row div{display:flex;flex-direction:column;flex:1;min-width:0}.activity-row strong,.history-row strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-row small,.history-row small{font-size:11px;color:#9aa49a;margin-top:4px}.activity-row b,.history-row b{font-size:13px;white-space:nowrap}.history-row button{background:none;border:0;font-size:19px;color:#8c9a8c}
.empty{text-align:center;background:#fff;border:1px dashed #dce5d5;border-radius:19px;padding:37px 22px}.empty-icon{font-size:31px;color:#8fb453;background:#eff7e1;width:52px;height:52px;display:grid;place-items:center;margin:0 auto 15px;border-radius:14px}.empty h3{font-size:19px;margin-bottom:5px}.empty p{font-size:13px;color:#879486;margin:0 auto 18px;max-width:290px;line-height:1.5}
.page-intro{border-radius:25px;background:#eaf2da;min-height:254px;padding:39px 45px;position:relative;overflow:hidden}.page-intro:after{content:'';position:absolute;width:250px;height:250px;border:48px solid #dcecc2;border-radius:50%;right:-38px;top:-100px}.page-intro>*{position:relative;z-index:1}.page-intro h1{font-size:clamp(39px,5vw,62px);margin:13px 0 10px}.page-intro h1 em{color:#779f37}.page-intro p{font-size:13px;color:#6d8068;margin-bottom:20px}.page-intro.compact{min-height:225px}
.plan-card{margin-bottom:15px;overflow:hidden}.plan-header{padding:23px 25px 18px;display:flex;justify-content:space-between}.plan-header h3{font-size:22px;margin:10px 0 3px}.plan-header p{color:#8c9a8c;font-size:12px;margin:0}.icon-button{background:none;border:0;border-radius:8px;height:30px;width:30px;font-size:22px;color:#677467}.slot-list{border-top:1px solid #eef0eb}.slot-row{width:100%;display:flex;align-items:center;text-align:left;gap:14px;background:none;border:0;border-bottom:1px solid #eef0eb;padding:12px 25px;color:#263228}.slot-row:hover{background:#fafcf7}.slot-day{width:43px;height:43px;border-radius:10px;background:#f0f5e9;color:#638b35;display:grid;place-items:center;font-size:11px;font-weight:800;flex:none}.slot-detail{display:flex;flex-direction:column;gap:3px;flex:1}.slot-detail strong{font-size:13px}.slot-detail small{font-size:11px;color:#98a398}.slot-row>span:last-child{font-size:23px;color:#aab4a7}.add-slot{border:0;background:none;width:100%;padding:15px;color:#6c973a;font-size:12px;font-weight:800;text-align:left;padding-left:25px}.add-slot:hover{background:#f8fbf3}
.filters{display:flex;gap:8px;margin-bottom:16px}.filters button{background:#fff;border:1px solid #e2e8dd;border-radius:999px;padding:9px 16px;color:#778577;font-size:12px;font-weight:800}.filters button.selected{background:#1a251d;border-color:#1a251d;color:#fff}.exercise-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.exercise-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e8ece4;border-radius:16px;padding:18px;min-width:0}.exercise-icon{width:45px;height:45px;display:grid;place-items:center;background:#eef5e1;color:#7ca743;border-radius:11px;font-size:24px;flex:none}.exercise-info{min-width:0;flex:1}.exercise-name{display:flex;align-items:center;gap:7px}.exercise-name h3{font-size:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:0}.exercise-info p{font-size:11px;color:#8c9a8c;margin:5px 0}.exercise-info small{font-size:11px;color:#a0aa9f}.exercise-info small b{color:#526a3b}.exercise-actions{display:flex;gap:4px;align-items:center}.exercise-actions button{border:0;border-radius:8px;background:#eff7df;color:#668e31;width:30px;height:30px;font-size:19px;font-weight:700}.exercise-actions button+button{background:none;color:#95a094}
.chart-card{padding:25px}.field-label{display:block;font-size:10px;letter-spacing:.15em;font-weight:800;color:#889587;margin-bottom:8px}.chart-card select{max-width:380px}.progress-stats{display:flex;gap:45px;margin:27px 0 4px}.progress-stats>div{display:flex;flex-direction:column;gap:5px}.progress-stats strong{font:700 29px Outfit;letter-spacing:-.05em}.progress-stats strong small{font-size:15px}.positive{color:#6e9b30}.negative{color:#c27455}.chart{max-width:700px;margin:20px 0}.chart svg{width:100%;height:auto;display:block}.chart-axis{display:flex;justify-content:space-between;padding:0 8%;font-size:11px;color:#a2ada1}.chart-caption{text-align:center;font-size:11px;color:#a2ada1;margin:17px 0}
.bottom-nav{position:fixed;z-index:5;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,1120px);height:74px;background:#fff;border:1px solid #e7ebe4;border-bottom:0;border-radius:20px 20px 0 0;display:flex;align-items:stretch;justify-content:space-around;box-shadow:0 -8px 30px #20301a0b;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{border:0;background:none;color:#9ba89a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;font-weight:800;min-width:70px}.bottom-nav button.active{color:#537c24}.nav-icon{font-size:22px;line-height:1.2}.bottom-nav button.active .nav-icon{transform:translateY(-2px)}
.modal-backdrop{position:fixed;z-index:10;inset:0;background:#111b15a8;display:flex;justify-content:center;align-items:flex-end;padding:20px}.modal{position:relative;background:#fff;border-radius:24px;width:min(100%,520px);max-height:min(90vh,820px);overflow:auto;padding:30px;box-shadow:0 18px 70px #09110844}.modal h2{font-size:26px;margin:0 36px 4px 0}.modal-sub{font-size:13px;color:#879587;line-height:1.5;margin-bottom:24px}.close{position:absolute;right:20px;top:20px;width:30px;height:30px;border:0;border-radius:8px;background:#f2f4ee;font-size:22px;color:#6c796b}.modal form{display:grid;gap:15px}.modal label:not(.check-grid label):not(.check-list label){font-size:12px;font-weight:800;display:grid;gap:8px}.modal input:not([type=checkbox]),.modal select,.chart-card select{width:100%;min-height:45px;border:1px solid #dce4d9;border-radius:10px;padding:0 12px;background:#fff;color:#243025;outline:none}.modal input:focus,.modal select:focus,.chart-card select:focus{border-color:#83ad43;box-shadow:0 0 0 3px #dff2c6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}fieldset{border:0;padding:0;margin:0}legend{font-size:12px;font-weight:800;margin-bottom:9px}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-grid label,.check-list label{display:flex;align-items:center;gap:8px;border:1px solid #e4eae0;border-radius:8px;padding:10px;font-size:12px;cursor:pointer}.check-grid input,.check-list input{accent-color:#7cad38}.check-list{max-height:190px;overflow:auto;display:grid;gap:6px}.check-list label span{display:flex;flex:1;justify-content:space-between;gap:12px}.check-list small{color:#a1aca1}.danger-link{display:block;border:0;background:none;color:#bb6b5c;font-size:12px;font-weight:800;margin:18px auto 0}.menu-action{display:block;width:100%;text-align:left;border:1px solid #e4e9e1;border-radius:10px;background:#fff;padding:15px;margin-top:9px;font-size:13px;font-weight:800;color:#344033}.menu-action:hover{background:#f6faef}.menu-action.danger{color:#b85b4f}.settings-note{font-size:11px;color:#8c9a8b;line-height:1.5;margin:20px 0 0}.toast{position:fixed;bottom:92px;left:50%;transform:translate(-50%,15px);z-index:20;background:#203025;color:#fff;padding:11px 17px;border-radius:10px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:700px){.shell{padding:0 16px 105px}.topbar{height:67px}.brand{font-size:22px}.hero{min-height:355px;padding:35px 27px;align-items:flex-start}.hero h1{font-size:52px}.hero p{font-size:13px;max-width:270px}.hero-shape{right:-245px;top:105px;width:420px;height:420px}.stats{gap:8px}.stat{min-height:105px;padding:16px 12px;border-radius:14px}.stat>span{font-size:9px;letter-spacing:.1em}.stat strong{font-size:30px}.stat small{font-size:10px}.section-head h2{font-size:22px}.section-head p{font-size:11px}.text-button{font-size:11px}.page-intro{padding:30px 25px;min-height:265px}.page-intro:after{right:-180px}.page-intro h1{font-size:46px}.exercise-list{grid-template-columns:1fr}.exercise-card{padding:14px}.modal-backdrop{padding:0}.modal{width:100%;border-radius:22px 22px 0 0;max-height:92vh;padding:27px 20px calc(25px + env(safe-area-inset-bottom))}.bottom-nav{height:71px}.today-card{padding:20px}.chart-card{padding:18px}.progress-stats{gap:20px}}
@media(max-width:390px){.hero h1{font-size:46px}.stats{gap:5px}.stat{padding:14px 8px}.stat small{font-size:9px}.exercise-name .tag{display:none}.bottom-nav button{min-width:60px}}

.template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.template-card{background:#fff;border:1px solid #e4ebdd;border-radius:18px;padding:21px;display:flex;flex-direction:column;gap:11px}
.template-top{display:flex;flex-wrap:wrap;gap:6px}
.template-card h3{font-size:20px;margin:2px 0 0}
.template-card p{color:#788779;font-size:12px;line-height:1.5;margin:0;flex:1}
.template-days{display:flex;flex-wrap:wrap;gap:6px}
.template-days span{font-size:10px;background:#f3f7ed;padding:6px 8px;border-radius:7px;color:#667b5c}
.template-note{font-size:11px;color:#879587;line-height:1.5;margin:12px 2px 0}
.slot-item{border-bottom:1px solid #eef0eb}
.slot-item:last-child{border-bottom:0}
.slot-item summary{list-style:none;cursor:pointer}
.slot-item summary::-webkit-details-marker{display:none}
.slot-item .slot-row{border-bottom:0}
.slot-item[open] .slot-row{background:#f8fbf3}
.slot-chevron{font-size:20px;color:#9aa79a}
.slot-content{padding:0 25px 16px 82px}
.prescription-row{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:10px 0;border-top:1px solid #eef1eb;font-size:12px}
.prescription-row strong{color:#5a8031}
.prescription-row small{grid-column:1 / -1;color:#9aa69a}
.slot-empty{font-size:12px;color:#96a396}
.edit-session{padding:10px 0}
.prescription-editor{max-height:310px}
.prescription-edit{border:1px solid #e4eae0;border-radius:10px;padding:9px}
.prescription-edit .prescription-check{border:0;padding:0;display:flex;gap:8px;align-items:center}
.prescription-inputs{display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:9px}
.prescription-edit:has(input[name="exerciseIds"]:checked) .prescription-inputs{display:grid}
.prescription-inputs label{font-size:10px;font-weight:700;color:#718071;display:grid;gap:4px}
.prescription-inputs input{min-width:0;padding:0 5px!important;min-height:35px!important}
.form-hint{color:#859284;font-size:11px;line-height:1.45;margin:-6px 0 0}
.metric-tabs{display:flex;gap:6px;margin:20px 0 0}
.metric-tabs button{border:1px solid #dfe9d5;background:#fff;color:#6f806b;padding:8px 13px;border-radius:8px;font-size:11px;font-weight:800}
.metric-tabs button.selected{background:#eaf5d5;color:#5c8228;border-color:#d7ebbc}
.recommendation{background:#fff;border:1px solid #e3ebdb;border-left:5px solid #9cbd64;border-radius:15px;padding:22px}
.recommendation.up{border-left-color:#77a537;background:#f7fbed}
.recommendation.down{border-left-color:#cb9462;background:#fffaf5}
.recommendation h3{font-size:23px;margin:9px 0 7px}
.recommendation p{color:#536453;font-size:13px;line-height:1.55;margin:0 0 13px}
.recommendation small{display:block;font-size:11px;color:#8a9788;line-height:1.5;margin-top:13px}
.analysis-metrics{border-top:1px solid #e7ece1;padding-top:12px;color:#60715d;font-size:12px}
@media(max-width:700px){.template-grid{grid-template-columns:1fr}.slot-content{padding-left:25px}.progress-stats{flex-wrap:wrap;gap:18px 25px}.recommendation{padding:18px}}

.workout-primary{margin-top:20px}
.workout-exercises{margin:18px 0;border-top:1px solid #e9eee5}
.workout-exercise{display:flex;align-items:center;gap:11px;border-bottom:1px solid #e9eee5;padding:11px 0}
.workout-exercise>span{width:25px;color:#a3aea0;font-size:20px;text-align:center}
.workout-exercise>span.done{color:#6c9b2c}
.workout-exercise>div{display:flex;flex-direction:column;gap:3px;flex:1}
.workout-exercise strong{font-size:13px}
.workout-exercise small{font-size:11px;color:#91a08d}
.workout-exercise button{width:32px;height:32px;border:0;border-radius:9px;background:#ebf6d9;color:#618d2d;font-size:19px;font-weight:800}
.workout-actions{display:flex;align-items:center;gap:15px;flex-wrap:wrap}
.slot-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:13px}
.slot-actions .secondary{min-height:36px;padding:0 13px;font-size:12px}
.recovery-box{display:flex;flex-direction:column;gap:5px;background:#fff5e7;border:1px solid #f0dfc0;border-radius:11px;padding:15px;margin:12px 0 20px}
.recovery-box strong{font-size:14px}
.recovery-box span{font-size:12px;color:#806f56;line-height:1.5}
.recovery-back{margin-top:10px}

.top-actions{display:flex;align-items:center;gap:10px}
.sync-pill{font-size:11px;font-weight:800;color:#5d8429;background:#edf7dd;border:0;border-radius:999px;padding:7px 10px}
.sync-pill.alert{color:#966039;background:#fff0dc}
.auth-shell{min-height:100vh;padding:28px 18px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px;background:#eef3e6}
.auth-card{width:min(100%,410px);background:#fff;border:1px solid #e3eadd;border-radius:22px;padding:32px;box-shadow:0 20px 60px #1b321113}
.auth-card h1{font-size:32px;line-height:1.05;margin:10px 0}
.auth-card p{font-size:13px;color:#778776;line-height:1.55;margin:0 0 20px}
.auth-card form{display:grid;gap:16px}
.auth-card label{display:grid;gap:7px;font-size:12px;font-weight:800}
.auth-card input{width:100%;height:45px;border:1px solid #dce5d7;border-radius:10px;padding:0 12px;outline:none}
.auth-card input:focus{border-color:#8fb849;box-shadow:0 0 0 3px #e3f2ce}
.auth-switch{display:block;margin:17px auto 0;border:0;background:none;color:#608a29;font-size:12px;font-weight:800}
.auth-card .auth-error{background:#fff1ed;color:#b55242;border-radius:8px;padding:10px;margin:0 0 16px}
@media(max-width:700px){.sync-pill{font-size:9px;padding:6px 8px}.top-actions{gap:5px}.auth-card{padding:26px}}
