@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#090f1c;--panel:#121d30;--panel2:#18263b;--panel3:#203047;--border:#2b3a52;--muted:#92a4bc;--text:#eff5ff;--sub:#c8d5e7;--cyan:#54d7cb;--purple:#9686ff;--pink:#fa84af;--blue:#75b9ff;--good:#43cf99;--bad:#f47a85;--yellow:#ffcd79;--radius:18px;font-family:'DM Sans',system-ui,-apple-system,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 5% -10%,#1a2444 0,transparent 40%),var(--bg);color:var(--text);min-height:100vh}body:before{content:'';position:fixed;z-index:-1;inset:0;background-image:linear-gradient(#8eb0dd06 1px,transparent 1px),linear-gradient(90deg,#8eb0dd06 1px,transparent 1px);background-size:42px 42px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{background:#0c1727;color:var(--text);border:1px solid #354762;padding:12px 13px;border-radius:11px;outline:none;width:100%;min-width:0}input:focus,select:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #54d7cb22}input[type=checkbox]{width:auto;accent-color:var(--cyan);height:18px;width:18px}input[type=range]{accent-color:var(--cyan);padding:0}textarea{resize:vertical;min-height:85px}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:Manrope,system-ui}h1{font-size:clamp(27px,3.4vw,39px);letter-spacing:-1.2px;margin-bottom:9px}h2{font-size:23px;letter-spacing:-.45px;margin-bottom:10px}h3{font-size:17px;letter-spacing:-.2px;margin-bottom:8px}p{line-height:1.6}small,.small{font-size:12px}.muted{color:var(--muted)}.subtle{color:var(--sub)}.strong{font-weight:800}.center{text-align:center}.right{text-align:right}.full{grid-column:1/-1}.hide{display:none!important}.splash{height:100vh;display:grid;place-content:center;text-align:center;justify-items:center}.splash p{color:var(--muted)}.brand-logo,.brand-mark{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:15px;color:#091523;font-weight:900;letter-spacing:-1.5px;font-size:19px;background:linear-gradient(135deg,#66eadc,#78bcff 58%,#ac9cff)}.brand{display:flex;align-items:center;gap:12px;line-height:1.2}.brand strong{display:block;font-size:19px;letter-spacing:-.5px}.brand small{display:block;margin-top:5px;color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:27px 16px;border-right:1px solid var(--border);background:#0b1424ed;display:flex;flex-direction:column;gap:20px}.sidebar .brand{padding:0 10px 14px}.menu{display:grid;gap:5px}.menu button{color:#9bb1ca;text-align:left;background:transparent;border-radius:12px;padding:13px 14px;display:flex;align-items:center;gap:12px;font-weight:650;font-size:14px}.menu button:hover,.menu button.active{background:#1b2c44;color:#fff}.menu button.active{box-shadow:inset 3px 0 0 var(--cyan)}.menu button .ic{font-size:19px;width:22px;text-align:center}.side-bottom{margin-top:auto;display:grid;gap:10px;padding:12px}.side-profile{padding:12px;background:#1d2d43;border-radius:14px;display:flex;align-items:center;gap:9px}.side-profile .avatar{width:38px;height:38px;font-size:22px}.content{padding:30px clamp(18px,3vw,46px) 70px;max-width:1680px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:27px}.eyebrow{color:var(--cyan);font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:900}.top-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{display:inline-flex;gap:9px;align-items:center;justify-content:center;min-height:42px;border-radius:12px;padding:11px 17px;font-weight:750;color:var(--text);background:var(--panel3);border:1px solid #354662;transition:transform .14s,filter .14s;font-size:13px}.btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.btn.primary{background:linear-gradient(120deg,#6be5d5,#88bbff);color:#082034;border-color:transparent}.btn.purple{background:linear-gradient(120deg,#a295ff,#7aabf5);color:#10162c;border:0}.btn.danger{color:#ffc2c5;border-color:#a04d65;background:#412330}.btn.light{background:#273951}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.sm{padding:7px 10px;min-height:34px;font-size:12px}.btn.xl{min-height:52px;padding:15px 25px;font-size:15px}.btn.icon{padding:9px;min-width:40px}.btn:focus-visible,.nav button:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.panel{background:linear-gradient(160deg,#142136,#101b2d);border:1px solid var(--border);border-radius:var(--radius);padding:23px;box-shadow:0 13px 35px #05091427}.panel.soft{background:#111e32}.panel.highlight{background:linear-gradient(115deg,#19334c,#20234c 75%,#272043)}.panel h2{margin:0 0 8px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.tag,.badge{font-size:11px;display:inline-flex;align-items:center;gap:5px;background:#29374f;color:#bdcce0;border-radius:100px;padding:6px 10px;font-weight:850}.badge.good{color:#8ef6c8;background:#164138}.badge.bad{color:#ffb1bf;background:#432538}.badge.info{color:#9abaff;background:#263a59}.badge.warn{color:#ffda8e;background:#514129}.grid{display:grid;gap:18px}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.stack{display:flex;flex-direction:column;gap:18px}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1;min-width:0}.gap8{gap:8px}.mb0{margin-bottom:0}.mt16{margin-top:16px}.mt24{margin-top:24px}.mb16{margin-bottom:16px}.card-stats{display:flex;align-items:center;gap:14px}.stat-symbol{font-size:23px;width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#27394f}.stat-number{font-size:26px;font-weight:900;letter-spacing:-.6px;font-family:Manrope}.stat-label{color:var(--muted);font-size:12px;font-weight:600;margin-bottom:5px}.hero{position:relative;overflow:hidden;min-height:220px;border-radius:22px;border:1px solid #3b426c;background:linear-gradient(111deg,#1d3851 0%,#242649 58%,#382248 100%);padding:33px}.hero:after{content:'◉';font-size:290px;opacity:.10;position:absolute;right:45px;top:-120px;color:#61e9d2;pointer-events:none}.hero>*{position:relative;z-index:1}.hero h1{max-width:600px;font-size:clamp(26px,3.2vw,43px)}.hero p{max-width:560px;color:#c4d4e5}.avatar{display:grid;place-items:center;background:linear-gradient(130deg,#2e445d,#323a63);border:1px solid #425975;border-radius:13px;width:60px;height:60px;font-size:33px;flex:none}.profile-card{padding:20px;cursor:pointer;transition:border-color .18s,transform .18s}.profile-card:hover{border-color:#6fdbd7;transform:translateY(-3px)}.profile-card .avatar{width:66px;height:66px;font-size:38px}.profile-card h3{margin:0}.profile-card .mini{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;color:#b8cadf;font-size:12px}.metric{background:#192940;border:1px solid #293c55;padding:11px;border-radius:11px}.metric strong{display:block;margin-top:6px;font-size:16px;color:#f4faff}.empty{min-height:190px;display:grid;place-content:center;text-align:center;justify-items:center;padding:24px;gap:10px;border:1px dashed #40536f;border-radius:15px;color:var(--muted)}.empty .big{font-size:38px}.field{display:grid;gap:7px;font-weight:650;font-size:12px;color:#c0d1e2}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.checkrow{display:flex;gap:10px;align-items:center;font-size:13px;color:#d7e4f4}.hint{font-size:12px;color:var(--muted);line-height:1.5}.pill-btn{border-radius:99px;background:#1d2e44;padding:9px 14px;color:#9db2cc;border:1px solid #31465e}.pill-btn.selected{background:#1d4a52;color:#8af8df;border-color:#4cd6c7}.equipment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:11px}.equipment-item{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #34465c;border-radius:13px;background:#18263b;cursor:pointer;min-height:72px}.equipment-item.checked{border-color:#4fcaba;background:#1a3b42}.equipment-item span:nth-child(2){flex:1}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.day-button{display:grid;place-items:center;gap:6px;min-height:63px;border-radius:11px;background:#1b2a3e;color:#9aaec7;border:1px solid #314359}.day-button.on{background:#1a494a;color:#97f1df;border-color:#53d7c8}.day-button small{font-size:10px;opacity:.8}.exercise-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:13px}.exercise-card{background:#18263a;border:1px solid #2d4057;border-radius:15px;overflow:hidden}.exercise-card img{display:block;width:100%;aspect-ratio:300/220;object-fit:cover}.exercise-card .detail{padding:14px}.exercise-card h3{font-size:13px;min-height:32px;margin-bottom:7px}.exercise-row{display:grid;grid-template-columns:85px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px;background:#18273b;border:1px solid #314159;border-radius:12px;margin:8px 0}.exercise-row img{width:85px;border-radius:8px}.exercise-row strong{font-size:13px}.exercise-row small{display:block;color:var(--muted);margin-top:5px}.exercise-controls{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.exercise-controls input{width:68px;padding:7px 8px;font-size:12px}.schedule-day{margin-top:16px;padding:16px;border:1px solid #344761;border-radius:14px;background:#13233a}.schedule-day header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.tabs{display:flex;gap:5px;flex-wrap:wrap;padding:5px;background:#15243a;border-radius:12px;width:fit-content}.tabs button{background:transparent;color:#aabbd1;padding:9px 13px;border-radius:8px;font-size:12px;font-weight:750}.tabs button.active{background:#2b3c56;color:#fff}.progress{height:10px;border-radius:20px;overflow:hidden;background:#27364c}.progress>span{display:block;background:linear-gradient(90deg,#6ce3d5,#9b91ff);height:100%;border-radius:20px}.warning{color:#ffd89a;background:#473923;padding:13px 16px;border-radius:12px;border:1px solid #6b522b;line-height:1.5}.alert{padding:13px 15px;border:1px solid #5b6f8e;border-radius:11px;color:#b9d6f9;background:#1b2b42;line-height:1.45;font-size:13px}.alert.error{background:#482633;border-color:#9f5368;color:#ffc3cb}.alert.success{background:#183c37;border-color:#3b8270;color:#9ff3d0}.toast{position:fixed;right:22px;bottom:23px;z-index:3000;padding:14px 18px;border:1px solid #458e80;border-radius:14px;background:#173e3d;color:#e9fff8;box-shadow:0 12px 32px #0009;max-width:420px;font-size:14px}.toast.error{background:#542b39;border-color:#c35e7b}.modal-backdrop{position:fixed;z-index:1000;inset:0;background:#030913cc;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}.modal{background:#152238;border:1px solid #3a4e66;border-radius:19px;padding:24px;width:min(640px,100%);max-height:90vh;overflow:auto;box-shadow:0 22px 90px #000b}.modal.wide{width:min(1060px,100%)}.modal .modal-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:22px}.modal .modal-head h2{margin:0}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:22px}.login-card{width:min(480px,100%);padding:35px;background:linear-gradient(150deg,#1b2a44,#141d32);border:1px solid #344862;border-radius:23px;box-shadow:0 35px 100px #0008}.login-card .brand{margin-bottom:30px}.login-card p{color:var(--muted)}.login-card form{display:grid;gap:17px;margin-top:22px}.install-page .install-wrap{max-width:740px;margin:40px auto;padding:35px;border:1px solid var(--border);border-radius:22px;background:#142036}.install-wrap h1{margin-top:30px}.install-wrap h3{margin-top:28px}.install-form{display:grid;gap:14px}.install-form label{display:grid;gap:8px;color:#bdcbdf;font-size:13px}.install-wrap .btn{margin-top:15px}.live-view{max-width:1100px;margin:auto}.live-hero{border:1px solid #44526a;background:linear-gradient(125deg,#18364a,#272244);padding:25px;border-radius:20px;display:grid;grid-template-columns:280px 1fr;gap:25px;align-items:center}.live-hero img{width:100%;border-radius:16px}.live-timer{font-size:clamp(52px,7vw,88px);font-family:Manrope;font-weight:900;line-height:1.18;letter-spacing:-4px}.live-counter{font-family:Manrope;font-weight:850;color:var(--cyan);font-size:24px}.live-progress{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.series-dot{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#314159;font-size:12px;font-weight:700}.series-dot.done{background:#20634f;color:#a1f8da}.live-break{color:#dbceff}.live-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.live-toolbox{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.live-toolbox .panel{padding:17px}.live-toolbox strong{display:block;font-size:18px;margin-top:5px}.chart{display:block;width:100%;max-height:280px;overflow:visible}.chart-label{font-size:11px;fill:#9baec4;font-family:DM Sans}.chart-line{fill:none;stroke:#69dbc9;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.report-header{padding:28px;border-radius:22px;background:linear-gradient(115deg,#1e4252,#202b48 50%,#34254f);border:1px solid #405d70;margin-bottom:20px}.report-header h1{margin:8px 0}.report-header p{margin:0;color:#b8d0e7}.report-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.report-summary .panel{padding:17px}.report-summary .stat-number{font-size:25px}.calendar-heatmap{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.heat-day{min-height:56px;border:1px solid #273b50;border-radius:8px;background:#18283d;display:grid;place-content:center;text-align:center;font-size:10px;color:#d4e3f6;gap:3px}.heat-day small{font-size:9px;color:#b8c7db}.heat-day.cumplido{background:#1b594a;border-color:#378772}.heat-day.incumplido{background:#632f40;border-color:#9a4960}.heat-day.justificado{background:#53502f;border-color:#847f46}.heat-day.descanso{background:#253349}.heat-day.pendiente{background:#24436b}.heat-day.sin_plan{opacity:.45}.barrow{display:grid;grid-template-columns:100px 1fr 42px;gap:12px;align-items:center;margin:10px 0;font-size:12px}.barrow .track{height:10px;border-radius:20px;background:#2c3a4d;overflow:hidden}.barrow .track b{display:block;background:linear-gradient(90deg,#71bcff,#8f8aff);height:100%;border-radius:20px}.report-ai{background:linear-gradient(115deg,#172e3c,#292341);border:1px solid #435673;border-radius:17px;padding:24px;line-height:1.75;white-space:pre-wrap;color:#d7e5fa}.report-print{max-width:1150px;margin:auto}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:13px 10px;border-bottom:1px solid #314057}.table th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.table td{color:#dce8f7}.feature-line{display:flex;align-items:center;justify-content:space-between;gap:11px;padding:12px 0;border-bottom:1px solid #2c4059}.feature-line:last-child{border:0}.tiny{font-size:11px}.danger-text{color:#ffb2ba}.success-text{color:#95f0c8}.footer{color:#6e849f;font-size:11px;text-align:center;padding:32px}.mobile-head{display:none}.settings-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;background:#1d2a40;border-radius:12px}.steps{display:flex;gap:4px}.step{height:5px;flex:1;border-radius:4px;background:#34455e}.step.done{background:#6aded1}.logo-hero{position:relative;display:grid;place-items:center;width:135px;height:135px;border-radius:26px;background:linear-gradient(130deg,#80f4df,#90aaff);color:#143049;font-size:55px;font-weight:900;box-shadow:0 18px 80px #51d3c43d}
@media(max-width:1150px){.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.report-summary{grid-template-columns:repeat(2,1fr)}.live-toolbox{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.layout{display:block}.sidebar{height:auto;position:sticky;z-index:30;top:0;padding:9px 14px;display:block;border-right:0;border-bottom:1px solid #2d3b56;background:#0e1727ed;backdrop-filter:blur(20px)}.sidebar .brand{padding:0}.sidebar .brand-logo,.sidebar .brand-mark{height:37px;width:37px;font-size:15px}.sidebar .brand strong{font-size:16px}.sidebar .brand small{font-size:9px}.sidebar .menu,.sidebar .side-bottom{display:none}.mobile-head{display:flex;gap:5px;overflow-x:auto;padding:9px 0 0;scrollbar-width:none}.mobile-head button{flex:0 0 auto;background:#18263c;color:#c0d0df;padding:8px 12px;border-radius:9px;font-size:11px}.mobile-head button.active{background:#2a5559;color:#9df5e5}.content{padding:20px 15px 65px}.topbar{margin-bottom:18px}.top-actions{gap:6px}.hero{padding:25px}.live-hero{grid-template-columns:1fr}.live-hero img{max-width:390px;justify-self:center}.live-timer{font-size:64px}.exercise-row{grid-template-columns:70px 1fr}.exercise-row img{width:70px}.exercise-controls{grid-column:1/-1}.exercise-controls input{width:70px}}
@media(max-width:600px){.cols-2,.cols-3,.cols-4,.cols-6{grid-template-columns:1fr}.fields{grid-template-columns:1fr}.panel{padding:17px}.hero h1{font-size:28px}.topbar{align-items:start}.topbar h1{font-size:25px}.btn{min-height:41px;padding:9px 11px}.login-card{padding:23px}.days{gap:3px}.day-button{min-height:53px}.day-button small{display:none}.report-summary{grid-template-columns:repeat(2,1fr)}.report-summary .panel{padding:13px}.report-summary .stat-number{font-size:22px}.heat-day{min-height:46px}.modal{padding:17px}.barrow{grid-template-columns:80px 1fr 30px}.live-toolbox{grid-template-columns:repeat(2,1fr)}.live-hero{padding:17px}.exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exercise-card .detail{padding:10px}.exercise-card h3{font-size:12px}.install-wrap{padding:20px!important;margin:15px!important}}
@media print{body,html{background:white!important;color:#15263c!important}.sidebar,.mobile-head,.topbar,.no-print,.btn,.footer,.modal-backdrop{display:none!important}.layout{display:block}.content{padding:0;max-width:none}.report-print{max-width:none}.report-header{background:#f1f6fb!important;color:#123}.report-header p,.muted,.stat-label{color:#5b7085!important}.panel,.report-ai{background:white!important;color:#15263c!important;border-color:#dae1e8!important;box-shadow:none;break-inside:avoid}.stat-number,h2,h3,strong{color:#17253d!important}.chart-label{fill:#526474}.chart-line{stroke:#218775}.barrow .track{background:#e8edf3}.barrow .track b{background:#4773a5}.heat-day{print-color-adjust:exact;-webkit-print-color-adjust:exact}.report-ai{white-space:pre-wrap}.report-summary{grid-template-columns:repeat(4,1fr)}.cols-2{grid-template-columns:repeat(2,1fr)}}


/* Pirela Fit 1.0.2 — entrenamiento móvil táctil */
.pf-live-ring{--pf-progress:0%;--pf-accent:#aa83ff;position:relative;isolation:isolate;width:min(278px,80vw);aspect-ratio:1;display:grid;place-items:center;margin:16px 0 18px;border-radius:50%;background:conic-gradient(from -90deg,var(--pf-accent) 0 var(--pf-progress),#3b4461 var(--pf-progress) 100%);box-shadow:0 0 0 7px #181a36a0,0 0 28px #7d58e044;transition:background 220ms linear}
.pf-live-ring.is-rest{--pf-accent:#42e2d3}
.pf-live-ring.is-actionable{cursor:pointer;touch-action:manipulation}
.pf-live-ring.is-actionable:hover{filter:brightness(1.06)}
.pf-live-ring.is-actionable:active{transform:scale(.988)}
.pf-live-ring.is-actionable:focus-visible{outline:3px solid #8cf4e3;outline-offset:4px}
.pf-live-ring:before{content:'';position:absolute;inset:14px;border-radius:50%;background:radial-gradient(circle at 50% 32%,#273658,#111b30 74%);border:1px solid #62749855;z-index:0}
.pf-ring-core{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:100%;padding:26px;text-align:center;min-width:0}
.pf-ring-label{font-size:11px;font-weight:850;color:#cdd9fb;letter-spacing:.12em}
.pf-ring-number{font-family:Manrope,system-ui,sans-serif;font-size:clamp(40px,6.5vw,66px);font-weight:900;letter-spacing:-.045em;color:#fff;line-height:1.1;font-variant-numeric:tabular-nums;white-space:nowrap}
.pf-ring-caption{font-size:11px;color:#aabce0;max-width:165px;line-height:1.35}
.pf-defaults{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.pf-defaults span{display:inline-block;background:#0d1b32cc;padding:10px 13px;border:1px solid #54668e;border-radius:12px;font-size:13px}
.pf-defaults strong{color:#e9f9ff}
.pf-quick-btn{background:linear-gradient(110deg,#23bf88,#14ab99)!important;color:#051f1b!important;min-height:62px!important;min-width:220px;font-size:17px!important;font-weight:900!important;box-shadow:0 12px 28px #09ba8350}
.pf-quick-btn:disabled{opacity:.52;cursor:wait}
.pf-edit-btn{border-color:#536687}
.live-hero{align-items:start}
.live-hero>div:nth-child(2){min-width:0}
.live-hero>img{object-fit:contain;background:radial-gradient(circle at 45% 35%,#23375c,#111b2d);aspect-ratio:4/3;max-height:300px}
.live-hero .pf-live-ring{margin-left:auto;margin-right:auto}
.live-hero .live-actions{align-items:center}
@media(max-width:850px){
 .live-hero{grid-template-columns:1fr;gap:14px;padding:16px}
 .live-hero>img{width:100%;height:clamp(145px,32vh,270px);aspect-ratio:auto;object-fit:contain}
 .live-hero .pf-live-ring{width:min(250px,67vw);margin:11px auto 18px}
 .live-hero .live-actions{display:flex;flex-direction:column;gap:10px}
 .live-hero .live-actions .btn{width:100%;min-height:51px}
 .live-hero .live-actions .pf-quick-btn{order:-2;min-height:68px!important;font-size:18px!important;position:sticky;bottom:max(12px,env(safe-area-inset-bottom));z-index:5}
 .live-hero .live-actions .pf-edit-btn{order:-1}
 .pf-ring-number{font-size:clamp(39px,10vw,57px)}
 .pf-ring-label{font-size:10px}
 .pf-defaults{justify-content:center}
}
@media(max-width:600px){
 .content{padding-bottom:95px}
 .live-view>.row{gap:8px}
 .live-hero{padding:14px}
 .live-hero h1{font-size:clamp(21px,6vw,29px);line-height:1.15;margin:5px 0}
 .live-hero>img{height:clamp(138px,26vh,225px)}
 .live-hero .pf-live-ring{width:min(225px,60vw);margin:7px auto 13px}
 .pf-live-ring:before{inset:12px}
 .live-hero .live-progress{justify-content:center}
 .live-hero .live-actions{margin-top:17px}
 .live-hero .live-actions .btn{width:100%;min-height:54px}
 .live-hero .live-actions .pf-quick-btn{min-height:66px!important}
}

/* v1.0.4: botón circular accesible de un toque */
button.pf-live-ring.is-actionable{appearance:none;-webkit-appearance:none;border:0;padding:0;color:inherit;font:inherit;text-align:center;-webkit-tap-highlight-color:transparent}
button.pf-live-ring.is-actionable:disabled{opacity:.74;cursor:wait;filter:none}
button.pf-live-ring.is-actionable .pf-ring-core{pointer-events:none}
button.pf-live-ring.is-actionable .pf-ring-caption{color:#99f1d9;font-weight:800}

/* ========= Pirela Fit 1.1 — Mobile-first visual redesign ========= */
:root{--bg:#080f20;--panel:#121d32;--panel2:#1c2944;--border:#364364;--text:#f4f5ff;--muted:#a7b4d4;--cyan:#5ee1e0;--purple:#a641f5;--radius:20px}
body{background:radial-gradient(ellipse at 55% -25%,#26396b 0,#080f20 42%,#080f20 100%);color:var(--text);font-family:Inter,'DM Sans',system-ui,sans-serif}
body:before{display:none}
.pf-app .sidebar{background:#0a1428;border-color:#263858}
.pf-app .menu button{font-size:14px;border-radius:13px}
.pf-app .menu button.active{background:linear-gradient(130deg,#32225a,#25305a);box-shadow:inset 3px 0 0 #a552ee;color:#fff}
.pf-logo{font-size:24px;font-weight:900;letter-spacing:-11px;padding-right:10px;display:grid;place-items:center;width:46px;height:46px;color:#9255f5;text-shadow:0 0 13px #8a46fb9e}
.pf-logo b{color:#42cdf5;font-size:20px}
.pf-brand strong{font-size:22px;font-weight:900;font-style:italic;letter-spacing:-.7px}
.pf-brand small{font-size:10px;text-transform:none;letter-spacing:.03em;color:#c4cce0}
.pf-mobile-top,.pf-bottom-nav{display:none}
.pf-app .panel{background:linear-gradient(160deg,#1a2743,#111d33);border:1px solid #384769;box-shadow:0 15px 34px #050a2090}
.pf-app .btn.primary,.pf-action-primary{background:linear-gradient(125deg,#b842f4 0%,#8b31e5 70%,#7921ce 100%)!important;color:white!important;border:1px solid #d788ff!important;box-shadow:0 7px 17px #8033df3b}
.pf-app .btn.purple{background:linear-gradient(130deg,#852df2,#b540ff);color:#fff}
.pf-app .btn:hover{filter:brightness(1.10)}
.pf-profile-banner{display:flex;align-items:center;gap:14px;background:linear-gradient(110deg,#1a2946,#202445);border:1px solid #37466c;padding:14px;border-radius:19px;margin-bottom:17px}
.pf-profile-avatar{display:grid;place-content:center;width:67px;height:67px;border-radius:50%;border:3px solid #869aff;background:#182941;font-size:34px}
.pf-profile-banner strong{display:block;font-size:19px;font-weight:900}
.pf-profile-banner small{display:block;color:#b7c4e0;font-size:12px;margin-top:5px}
.pf-open-profile{border-radius:100%;background:transparent;color:#d8d4f4;font-size:28px}
.pf-today{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 80% 12%,#43317f 0,transparent 52%),linear-gradient(140deg,#1c2b57,#1c1749);padding:23px;border:1px solid #6b5be3;border-radius:22px;margin-bottom:15px;min-height:260px}
.pf-today h2{font-size:24px;line-height:1.2;max-width:74%;margin:18px 0 7px;position:relative;z-index:1}
.pf-today p{font-size:13px;color:#dae1f4;position:relative;z-index:1;margin:0 0 15px}
.pf-today-title{display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:800;color:#f6f6ff;position:relative;z-index:2}
.pf-today-muscle{position:absolute;right:-11px;top:50px;width:115px;height:175px;object-fit:cover;border-radius:10px;opacity:.86;mix-blend-mode:lighten;mask-image:linear-gradient(to bottom,#000 60%,transparent)}
.pf-today-progress{height:8px;max-width:72%;margin-bottom:7px;position:relative;z-index:1;background:#444a6a}
.pf-today small{font-size:11px;color:#b6c2e3;display:block}
.pf-today .pf-action-primary{width:100%;font-size:16px;min-height:53px;margin-top:18px;position:relative;z-index:2}
.pf-shortcuts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px}
.pf-shortcuts button{background:linear-gradient(160deg,#1d2b4d,#151f37);border:1px solid #405174;border-radius:17px;padding:18px 7px;color:#eef2ff;font-size:12px;font-weight:800;min-height:107px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;text-align:center}
.pf-shortcuts span{font-size:27px;color:#ba80ff}.pf-shortcuts small{display:block;font-size:10px;color:#b3c0dc}
.pf-shortcuts button:hover{border-color:#a95efa;background:#28365f}
.pf-stat-row .panel{padding:14px}
.pf-stat-row .stat-symbol{color:#bca4fa}
.pf-no-live{margin:auto;max-width:600px;text-align:center;border:1px solid #384669;background:linear-gradient(130deg,#151f38,#20213e);border-radius:24px;padding:45px 25px}
.pf-no-live>span{font-size:55px}.pf-no-live p{color:#b9c5df}.pf-no-live .pf-action-primary{width:100%}
.pf-live-modern{max-width:750px}
.pf-live-screen-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.pf-live-screen-head .pf-back{font-size:32px;line-height:1;background:transparent;color:white;padding:5px}
.pf-live-screen-head>div{flex:1;text-align:center;display:grid;gap:4px}
.pf-live-screen-head strong{font-size:20px}
.pf-live-screen-head small{font-size:12px;color:#bdc8e0}
.pf-workout-progress{margin:0 3px 15px}
.pf-workout-progress .row{color:#bdc8e0;font-size:12px;font-weight:700;margin-bottom:9px}
.pf-workout-progress .progress{height:7px;background:#33405f}
.pf-workout-progress .progress span{background:linear-gradient(90deg,#b94cff,#7a52ed)}
.pf-active-exercise{padding:0 0 9px}
.pf-exercise-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.pf-exercise-title h2{margin:0;font-size:23px;font-weight:900;letter-spacing:-.4px}
.pf-icon-circle{background:#262f54;border:1px solid #5f6294;color:#c09dfd;padding:9px;border-radius:100%}
.pf-live-photo{width:100%;height:258px;object-fit:cover;display:block;border-radius:19px 19px 6px 6px;border:1px solid #444a76;background:#13223e}
.pf-live-metadata{display:flex;gap:10px;transform:translateY(-8px)}
.pf-live-metadata span{flex:1;background:linear-gradient(130deg,#1f2d4b,#273452);border:1px solid #465275;border-radius:13px;padding:12px 10px;text-align:center}
.pf-live-metadata small{font-size:11px;color:#b3bfd9;display:block;margin-bottom:4px}
.pf-live-metadata strong{font-size:16px}
.pf-technique{font-size:12px;color:#a8b7d8;line-height:1.5;margin-bottom:9px}
.pf-workout-console{text-align:center;background:linear-gradient(170deg,#141d38,#101830);border:1px solid #3b466e;border-radius:19px;padding:20px 16px 16px}
.pf-live-phase{font-size:19px;color:#d9daff;margin:0;font-weight:850}
.pf-rest-mode .pf-live-phase{color:#68edd8}
.pf-live-modern .pf-live-ring{--pf-accent:#ad4dff;width:min(280px,68vw);margin:17px auto;background:conic-gradient(from -90deg,var(--pf-accent) 0 var(--pf-progress),#384160 var(--pf-progress) 100%);box-shadow:0 0 26px #9d43e044;}
.pf-live-modern .pf-live-ring:before{inset:15px;background:radial-gradient(circle at 48% 33%,#252b59,#11172d 74%);border:1px solid #6d638944}
.pf-live-modern .pf-live-ring.is-rest{--pf-accent:#32e0de}
.pf-live-modern .pf-ring-core{z-index:1}
.pf-live-modern .pf-ring-label{font-size:13px;text-transform:none;letter-spacing:.02em;color:#d6d5ee}
.pf-live-modern .pf-ring-number{font-size:clamp(54px,12vw,88px);letter-spacing:-2px;color:white}
.pf-live-modern .pf-ring-caption{color:#ddd6f1;font-size:12px;line-height:1.4;max-width:190px}
.pf-live-modern .pf-live-ring.is-actionable{box-shadow:0 0 33px #a757f566;outline:none}
.pf-live-modern .pf-live-ring.is-actionable:focus-visible{outline:3px solid #bba4ff}
.pf-live-series{display:flex;gap:10px;justify-content:center;margin:13px 0}
.pf-live-series span{width:35px;height:35px;border-radius:50%;background:#26304a;color:#e6eafd;display:grid;place-items:center;font-weight:800;border:1px solid #536184}
.pf-live-series .current{background:#6e3db2;border-color:#a477f7;box-shadow:0 0 18px #a251ff88}
.pf-live-series .done{background:#117b61;border-color:#36d7a4;color:white}
.pf-live-modern .pf-defaults{display:flex;justify-content:center;margin:15px 0;gap:8px}
.pf-live-modern .pf-defaults span{padding:9px 11px}
.pf-primary-actions{display:flex;flex-direction:column;align-items:stretch;gap:11px;margin-top:17px}
.pf-primary-actions .btn{min-height:51px;width:100%;border-radius:15px;font-size:15px;font-weight:850}
.pf-primary-actions .pf-quick-btn{background:linear-gradient(130deg,#9637ed,#bd3ef6)!important;color:white!important;border:1px solid #d59cff!important;box-shadow:0 8px 23px #a049ff4d}
.pf-primary-actions .pf-soft-btn,.pf-primary-actions .pf-edit-btn{background:#26334b;border:1px solid #7a88a4;color:#fff}
.pf-rest-announcement{background:linear-gradient(115deg,#16324b,#172a41);border:1px solid #257f87;border-radius:13px;padding:13px;text-align:left;display:flex;align-items:center;gap:12px;color:#f0ffff}
.pf-rest-announcement>span{font-size:25px}
.pf-rest-announcement small{display:block;color:#9ad3d3;font-size:12px;margin-top:5px}
.pf-discard{margin-top:10px;color:#aab5d1!important;font-size:12px!important}
.pf-voice-settings select{font-size:13px}
.pf-media-header{border:1px solid #57638d!important}
.pf-media-header .panel-title{align-items:flex-start}
.pf-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.pf-media-card{background:linear-gradient(150deg,#1c2947,#151f36);border:1px solid #425273;border-radius:17px;overflow:hidden;display:flex;flex-direction:column}
.pf-media-card[hidden]{display:none!important}
.pf-media-card img{width:100%;height:180px;object-fit:cover;background:#111b31;display:block}
.pf-media-card-content{padding:14px;display:flex;flex-direction:column;gap:10px;flex:1}
.pf-media-card-content strong{font-size:15px;line-height:1.3;min-height:37px}
.pf-media-card-content small{font-size:11px;color:#b3c1dc}
.pf-media-card-content .btn{margin-top:auto}
.pf-media-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pf-media-slot{background:#202e47;border:1px solid #4f5e7b;border-radius:14px;overflow:hidden}
.pf-media-slot-image img{width:100%;height:132px;object-fit:cover;background:#142035}
.pf-media-slot-meta{padding:10px;display:grid;gap:7px}
.pf-media-slot-meta strong{font-size:13px}
.pf-media-slot-meta small{color:#bac8e1;font-size:11px}
.pf-media-slot-meta button{font-size:11px}
.pf-app .exercise-card{background:#17233b;border-color:#3b496f}
.pf-app .exercise-card img{height:auto;aspect-ratio:1.38;object-fit:cover}
.pf-app .exercise-card h3{font-size:14px}
.pf-app .exercise-grid{gap:14px}
.pf-app .exercise-card .detail{padding:13px}
@media(max-width:980px){.pf-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}.pf-stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .pf-app .sidebar{display:none}
 .pf-app.layout{display:block;min-height:100vh}
 .pf-app .content{padding:0 15px calc(95px + env(safe-area-inset-bottom));max-width:500px;min-height:100vh}
 .pf-mobile-top{display:flex;align-items:center;justify-content:space-between;padding:14px 3px 15px;min-height:77px}
 .pf-header-more{font-size:26px;color:#d9ccf8;background:#1a2440;border:1px solid #404a73;border-radius:12px;padding:5px 12px}
 .pf-app .topbar{display:none}
 .pf-bottom-nav{display:grid;position:fixed;z-index:100;bottom:0;left:0;right:0;grid-template-columns:repeat(5,1fr);padding:8px 6px calc(9px + env(safe-area-inset-bottom));background:#0d1931f7;border-top:1px solid #36416e;box-shadow:0 -10px 30px #060a1899;backdrop-filter:blur(16px)}
 .pf-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:transparent;color:#a6b2d0;padding:2px 3px;min-height:43px}
 .pf-bottom-nav button.active{color:#ba65ff}
 .pf-bottom-icon{font-size:23px;line-height:1}
 .pf-bottom-nav small{font-size:10px;line-height:1.2}
 .pf-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
 .pf-shortcuts button{min-height:105px;padding:10px 5px}
 .pf-app .grid.cols-4,.pf-app .grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
 .pf-app .grid.cols-2{grid-template-columns:1fr}
 .pf-app .panel{padding:17px}
 .pf-app .hero{padding:20px}
 .pf-app .days{gap:4px}
 .pf-app .day-button{min-height:53px}
 .pf-app .exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .pf-app .exercise-card .detail{padding:10px}
 .pf-app .exercise-card h3{font-size:12px;min-height:33px}
 .pf-app .exercise-card .badge{font-size:9px}
 .pf-app .exercise-card .btn{width:100%;font-size:11px;padding:8px;min-height:36px}
 .pf-app .exercise-card img{aspect-ratio:1.28}
 .pf-profile-banner{padding:10px 12px}
 .pf-profile-avatar{width:56px;height:56px;font-size:29px}
 .pf-profile-banner strong{font-size:16px}
 .pf-today{padding:18px;min-height:260px}
 .pf-today h2{max-width:68%;font-size:23px}
 .pf-today-muscle{width:110px;height:178px}
 .pf-stat-row .panel{padding:13px}
 .pf-stat-row .card-stats{display:block}
 .pf-stat-row .stat-symbol{margin-bottom:8px}
 .pf-stat-row .stat-number{font-size:23px}
 .pf-live-modern{margin-top:0}
 .pf-live-screen-head{margin-bottom:16px}
 .pf-live-screen-head strong{font-size:16px}
 .pf-live-screen-head .badge{font-size:9px;max-width:95px;text-align:center}
 .pf-exercise-title h2{font-size:20px}
 .pf-live-photo{height:210px}
 .pf-live-modern .pf-live-ring{width:min(246px,68vw);margin:12px auto}
 .pf-live-modern .pf-ring-number{font-size:65px}
 .pf-workout-console{padding:17px 14px}
 .pf-live-modern .pf-ring-caption{font-size:11px}
 .pf-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .pf-media-card img{height:130px}
 .pf-media-card-content{padding:10px}
 .pf-media-card-content strong{font-size:12px;min-height:31px}
 .pf-media-slots{grid-template-columns:1fr}
 .pf-media-slot{display:flex;min-height:92px}
 .pf-media-slot-image{width:110px;flex:none}
 .pf-media-slot-image img{width:110px;height:100%;min-height:100px}
 .pf-app .modal{padding:18px;max-height:85dvh}
}
@media(max-width:380px){.pf-app .content{padding-left:10px;padding-right:10px}.pf-shortcuts button{font-size:11px}.pf-today-muscle{width:90px}.pf-live-modern .pf-live-ring{width:220px}}
@media print{.pf-bottom-nav,.pf-mobile-top{display:none!important}}

.pf-today-female{position:absolute;right:12px;top:74px;font-size:102px;line-height:1;filter:drop-shadow(0 0 26px #a65bf688);opacity:.85}

/* Pirela Fit 1.2 — administración de usuarios individuales */
.pf-admin-shortcut{background:linear-gradient(110deg,#6c32c5,#9541ef)!important;color:#fff!important;border-color:#b788ff!important;font-size:12px}
.pf-admin-hero{border-radius:24px;padding:clamp(23px,4vw,38px);border:1px solid #6a4bb2;background:radial-gradient(circle at 100% 0%,#663c8b75,transparent 45%),linear-gradient(110deg,#1b2d52,#211d48);margin-bottom:19px}
.pf-admin-hero h1{font-size:clamp(25px,4vw,39px);margin:10px 0}
.pf-admin-hero p{color:#c5d3e9;max-width:700px}
.pf-admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}
.pf-admin-stats .panel{padding:18px}
.pf-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.pf-admin-tile{background:linear-gradient(145deg,#1b2c4c,#1b1d3c);border:1px solid #4f558d;border-radius:19px;min-height:165px;text-align:left;padding:23px;color:#eff4ff;display:grid;gap:8px;position:relative;align-content:start;transition:transform .16s,border-color .16s}
.pf-admin-tile:hover{border-color:#bd7afb;transform:translateY(-2px)}
.pf-admin-tile-icon{display:inline-grid;place-items:center;background:#6333ad66;border:1px solid #8b56cc70;border-radius:13px;color:#d9a5ff;width:42px;height:42px;font-size:23px}
.pf-admin-tile strong{font-size:18px}.pf-admin-tile small{font-size:12px;color:#bac8e0;line-height:1.5;max-width:340px}.pf-admin-arrow{position:absolute;right:22px;top:24px;color:#bba2ff;font-size:25px}
.pf-admin-userlist{display:grid;gap:10px;margin-top:18px}
.pf-admin-user{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #394a6d;border-radius:14px;background:#15263e;padding:14px}
.pf-admin-user-id{display:flex;align-items:center;gap:12px;min-width:0;overflow-wrap:anywhere}
.pf-admin-user-id .avatar{width:47px;height:47px;font-size:21px}.pf-admin-user-id strong{font-size:14px}
.pf-admin-user-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.pf-approve{border-color:#31ab8e;color:#9efadc;background:#145649}
.pf-reg-option{align-items:flex-start!important;padding:17px 16px;border:1px solid #36476a;border-radius:14px;background:#17253f;cursor:pointer}
.pf-reg-option input{margin-top:3px}.pf-reg-option span{display:grid;gap:4px}.pf-reg-option strong{font-size:14px}.pf-reg-option small{font-size:12px;color:#aebcdb;line-height:1.5}
@media (max-width:980px){.pf-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.pf-admin-hero{padding:21px}.pf-admin-grid{grid-template-columns:1fr}.pf-admin-user{align-items:stretch;flex-direction:column}.pf-admin-user-actions{justify-content:flex-start}.pf-admin-stats .panel{padding:14px}.pf-admin-stats .stat-number{font-size:23px}.pf-admin-shortcut{font-size:11px;min-height:36px}}

/* Pirela Fit 1.2.2 — fotos personales, máquinas y transición al ejercicio siguiente */
.pf-profile-avatar.has-photo,.avatar.has-photo{overflow:hidden;padding:0!important;display:grid;place-items:center}
.pf-profile-avatar.has-photo img,.avatar.has-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.pf-profile-photo-preview{display:flex;justify-content:center;padding:10px 0 22px}
.pf-profile-photo-preview .pf-profile-avatar{height:126px;width:126px;font-size:58px}
.pf-photo-edit-shortcut{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.pf-photo-edit-shortcut .pf-profile-avatar{width:80px;height:80px}
.pf-equipment-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:15px}
.pf-machine-card{overflow:hidden;padding:12px!important;display:flex;flex-direction:column;gap:14px}
.pf-machine-card>div:last-child{padding:4px 6px 7px}
.pf-machine-card h3{margin-bottom:5px}
.pf-machine-card .row{gap:7px}
.pf-machine-card .row .btn{font-size:12px;padding:9px 11px;min-height:40px}
.pf-machine-image{height:174px;background:radial-gradient(circle at 50% 25%,#384270,#131f35 70%);border:1px solid #47536d;border-radius:13px;display:grid;place-items:center;overflow:hidden}
.pf-machine-image img{width:100%;height:100%;object-fit:contain}
.pf-machine-image span{font-size:72px;opacity:.65}
.pf-machine-modal-photo{width:100%;max-height:290px;object-fit:contain;background:#101b30;border:1px solid #43516b;border-radius:13px}
.pf-machine-modal-empty{height:125px;display:grid;place-items:center;font-size:75px;background:#18233b;border-radius:12px}
.pf-equipment-thumb{width:72px;height:68px;object-fit:cover;flex-shrink:0;border-radius:10px;background:#16253e;border:1px solid #3c5270}
.pf-equipment-thumb.fallback{display:grid;place-items:center;font-size:27px}
.equipment-item .pf-equipment-thumb + input[type=checkbox]{flex-shrink:0}
.pf-is-changing .pf-active-exercise{display:none}
.pf-is-changing .pf-workout-console{border-color:#35b9b7;background:linear-gradient(160deg,#132a41,#101d35)}
.pf-is-changing .pf-live-phase{color:#7af4e4;font-size:20px;margin-bottom:15px}
.pf-next-exercise{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:15px;text-align:left;background:linear-gradient(125deg,#1a2846,#212446);border:1px solid #535b9b;border-radius:17px;padding:12px;align-items:center}
.pf-next-exercise img{width:100%;height:148px;object-fit:cover;border-radius:12px;background:#101b32}
.pf-next-exercise small{display:block;color:#8cefe5;letter-spacing:.07em;font-size:10px;font-weight:900;margin-bottom:6px}
.pf-next-exercise strong{display:block;font-size:19px;line-height:1.3;color:#fff}
.pf-next-exercise p{margin:8px 0;color:#cbd7ec;font-size:12px;line-height:1.4}
.pf-next-exercise span{font-size:12px;color:#d9c8ff}
.pf-is-changing .pf-live-ring{width:min(225px,63vw);margin:14px auto}
.pf-is-changing .pf-ring-number{font-size:clamp(47px,10vw,72px)}
@media(max-width:700px){
 .pf-equipment-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .pf-machine-card .row{align-items:stretch;flex-direction:column}
 .pf-machine-image{height:123px}
 .pf-machine-card h3{font-size:14px}
 .pf-next-exercise{grid-template-columns:120px minmax(0,1fr);gap:10px;padding:9px}
 .pf-next-exercise img{height:125px}
 .pf-next-exercise strong{font-size:15px}
 .pf-next-exercise p{font-size:11px;margin:5px 0}
 .pf-next-exercise span{font-size:11px}
 .pf-next-exercise small{font-size:9px}
 .pf-is-changing .pf-live-ring{width:min(180px,48vw);margin:10px auto}
 .pf-is-changing .pf-ring-number{font-size:clamp(42px,9vw,62px)}
 .pf-is-changing .pf-primary-actions .btn{min-height:46px}
}
@media(max-width:360px){
 .pf-equipment-admin-grid{grid-template-columns:minmax(0,1fr)}
 .pf-next-exercise{grid-template-columns:100px minmax(0,1fr)}
 .pf-next-exercise img{height:110px}
}

/* Asegura que la descripción de la máquina conserve el espacio disponible. */
.equipment-item>span:last-child{flex:1;min-width:0}

/* Marca Pirela Fit: logo editable en assets/brand-logo.png */
.pf-brand-icon{display:block;width:46px;height:46px;object-fit:contain;flex:none;border-radius:13px;}
@media(max-width:850px){.pf-mobile-top .pf-brand-icon{width:41px;height:41px;}}


/* Pirela Fit 1.2.4 - tarjetas neon y navegacion accesible */
.pf-app{background:radial-gradient(ellipse at 15% -10%,#16183d 0,transparent 40%),#080f22}
.pf-app .pf-brand-icon{width:58px;height:58px;object-fit:contain;border-radius:0}
.pf-app .pf-brand strong{font-size:25px;font-style:italic;letter-spacing:-.7px;color:#f4f6ff}
.pf-ui-icon{width:24px;height:24px;object-fit:contain;flex:none;display:inline-block;vertical-align:middle}
.pf-menu-icon{width:22px;height:22px}
.pf-quick-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#192745;border:1px solid #4a618d;border-radius:13px;padding:10px 14px;min-height:44px;color:#f4f5ff;font-size:13px;font-weight:800;white-space:nowrap}
.pf-quick-link:hover,.pf-quick-link:focus-visible{border-color:#91a8ff;box-shadow:0 0 0 2px #9b88ff30}
.pf-quick-link.is-logout{background:#35223e;border-color:#b0588c}
.pf-mobile-account-actions{display:none}
.pf-shortcuts-neon{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px;margin-bottom:25px}
.pf-shortcuts-neon .pf-shortcut-tile{min-width:0;min-height:142px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:radial-gradient(ellipse at 100% 100%,#33226666,transparent 55%),linear-gradient(160deg,#1a2b50 0%,#0f1936 75%);border:1px solid #546fe0;border-bottom:3px solid #975fff;border-radius:23px;color:#f8f7ff;box-shadow:inset 0 1px 1px #779af544,0 12px 24px #01050f66;transition:transform .15s,border-color .15s,box-shadow .15s;padding:15px 9px;text-align:center}
.pf-shortcuts-neon .pf-shortcut-tile:hover{transform:translateY(-3px);border-color:#72eeff;box-shadow:0 0 22px #736fff44,inset 0 1px 2px #9c8bff66}
.pf-shortcuts-neon .pf-shortcut-tile:focus-visible,.pf-quick-link:focus-visible{outline:3px solid #64e8ec;outline-offset:3px}
.pf-shortcuts-neon .pf-shortcut-icon{width:58px;height:58px;filter:drop-shadow(0 3px 5px #ad6aff88)}
.pf-shortcuts-neon .pf-shortcut-tile span{display:block;max-width:165px;color:#fff;font-weight:850;font-size:15px;line-height:1.22;overflow-wrap:break-word}
.pf-shortcuts-neon .pf-shortcut-chart,.pf-shortcuts-neon .pf-shortcut-admin{border-bottom-color:#13dcf1;background:radial-gradient(ellipse at 100% 100%,#144a6777,transparent 55%),linear-gradient(160deg,#172c51,#101a38)}
.pf-shortcuts-neon .pf-shortcut-danger{border-color:#925481;border-bottom-color:#f16ea9;background:linear-gradient(155deg,#1c2a48,#2b173b)}
.pf-home-profile{background:linear-gradient(105deg,#142d54,#272054);border:1px solid #6879f9;border-radius:23px;padding:20px;box-shadow:0 8px 28px #08042666}
.pf-home-profile .avatar{width:74px;height:74px;border-radius:50%;box-shadow:0 0 0 3px #67e9fe,0 0 0 6px #835af7}
.pf-home-profile strong{font-size:clamp(19px,2.6vw,26px);font-weight:900}
.pf-home-profile small{font-size:13px;color:#c7d1e9;line-height:1.5}
.pf-home-profile-link{opacity:.32;margin-left:auto}.pf-home-profile-link img{width:70px;height:70px}
.pf-settings-card .pf-setting-header-icon{width:55px;height:55px}
.pf-settings-card .row .btn .pf-ui-icon{width:20px;height:20px}
.pf-app .top-actions .pf-ui-icon{width:19px;height:19px}
.pf-app .sidebar .side-bottom .btn[data-action="logout"]{border:1px solid #9f557e;background:#33223b;color:#ffe9f4;font-weight:800}
.pf-app .sidebar .menu .pf-ui-icon{width:22px;height:22px}
.pf-bottom-nav .pf-ui-icon{width:25px;height:25px}
@media(max-width:1050px){.pf-shortcuts-neon{grid-template-columns:repeat(4,minmax(0,1fr))}.pf-shortcuts-neon .pf-shortcut-tile{min-height:120px}.pf-shortcuts-neon .pf-shortcut-icon{width:48px;height:48px}.pf-shortcuts-neon .pf-shortcut-tile span{font-size:13px}}
@media(max-width:700px){
 .pf-app .pf-mobile-top .pf-brand-icon{width:49px;height:49px}
 .pf-app .pf-mobile-top .pf-brand strong{font-size:23px}
 .pf-app .pf-mobile-top .pf-brand small{font-size:10px}
 .pf-header-logout{display:grid;place-items:center;background:#342142;border:1px solid #b75e96;border-radius:12px;padding:10px;min-width:44px;min-height:44px}
 .pf-header-logout img{width:26px;height:26px}
 .pf-mobile-account-actions{display:flex;gap:7px;margin-bottom:17px;flex-wrap:wrap}
 .pf-mobile-account-actions .pf-quick-link{flex:1 1 auto;min-width:0;padding:9px 7px;font-size:11px;white-space:normal;text-align:center}
 .pf-mobile-account-actions .pf-quick-link .pf-ui-icon{width:19px;height:19px}
 .pf-shortcuts-neon{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .pf-shortcuts-neon .pf-shortcut-tile{min-height:130px;border-radius:20px}
 .pf-shortcuts-neon .pf-shortcut-icon{width:55px;height:55px}
 .pf-shortcuts-neon .pf-shortcut-tile span{font-size:15px}
 .pf-home-profile{padding:17px 13px}
 .pf-home-profile .avatar{width:63px;height:63px}
 .pf-home-profile small{font-size:11px;overflow-wrap:anywhere}
 .pf-home-profile-link{display:none}
}
@media(max-width:360px){.pf-mobile-account-actions{gap:5px}.pf-mobile-account-actions .pf-quick-link{font-size:10px;padding:7px 4px}.pf-mobile-account-actions .pf-quick-link .pf-ui-icon{display:none}.pf-shortcuts-neon .pf-shortcut-tile{min-height:115px}.pf-shortcuts-neon .pf-shortcut-tile span{font-size:12px}}
@media print{.pf-mobile-account-actions,.pf-shortcuts-neon{display:none!important}}

.pf-today-and-plan{margin:12px 0 22px}
.pf-shortcuts-neon{margin-top:0}

/* Pirela Fit 1.2.5 — data control */
.pf-privacy-panel{border:1px solid #954c68;background:linear-gradient(135deg,#1b2438,#2c1e30)}
.pf-privacy-panel .row{margin-top:16px}
.pf-privacy-danger{padding:16px;border:1px solid #b24d67;border-radius:12px;background:#4a2435;color:#ffe1e4}
.pf-privacy-danger p{margin:8px 0 0;color:#ffdce2}
.pf-admin-user-actions{flex-wrap:wrap}
@media(max-width:640px){.pf-privacy-panel .btn{width:100%}.pf-admin-user-actions .btn{min-height:44px}}

/* Pirela Fit 1.2.6 — Zona segura para la barra de estado del iPhone.
   En iOS, la PWA instalada puede dibujarse debajo del reloj, Wi-Fi y batería.
   Se desplaza solo el encabezado móvil, no el temporizador ni la navegación inferior. */
@media screen and (max-width: 700px) {
  .pf-app .pf-mobile-top {
    padding-top: calc(14px + env(safe-area-inset-top, 0px));
    min-height: calc(77px + env(safe-area-inset-top, 0px));
  }
}
/* Respaldo para iOS instalado cuando WebKit devuelve 0px de safe-area-inset-top. */
@supports (-webkit-touch-callout: none) {
  @media screen and (max-width: 700px) and (display-mode: standalone) and (orientation: portrait) {
    .pf-app .pf-mobile-top {
      padding-top: calc(14px + max(52px, env(safe-area-inset-top, 0px)));
      min-height: calc(77px + max(52px, env(safe-area-inset-top, 0px)));
    }
  }
}

/* Pirela Fit 1.2.7 — Prevent iPhone Safari auto-zoom when focusing form controls.
   Safari automatically zooms editable fields below 16px. Keep native user pinch-zoom
   enabled for accessibility; only increase the field typography on touch/mobile. */
@media screen and (pointer: coarse), screen and (max-width: 900px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="file"]),
  select, textarea {
    font-size: 16px !important;
  }
}

/* Pirela Fit 1.2.9 - Foto de perfil EXIF normalizada, controles de giro */
.pf-profile-avatar.has-photo img,.avatar.has-photo img{image-orientation:from-image;object-position:center;}
.pf-photo-rotation{padding:14px 15px;border:1px solid #485b83;border-radius:14px;background:#182b43;margin-bottom:18px}
.pf-photo-rotation .row{gap:9px}
.pf-photo-rotation .btn{flex:1;min-height:47px}
@media(max-width:520px){.pf-photo-rotation .row{display:grid;grid-template-columns:1fr 1fr}.pf-photo-rotation .btn{font-size:12px;padding:10px 8px;line-height:1.3;white-space:normal}}

/* Pirela Fit 1.3.0 — carga retroactiva y períodos de informes */
.pf-watch-log-card{display:flex;align-items:center;justify-content:space-between;gap:20px;border-color:#5066a0;background:linear-gradient(120deg,#182b4a,#29234d)}
.pf-watch-log-card p{max-width:660px;margin:8px 0 0}
.pf-manual-home-cta,.pf-home-manual{border-radius:14px;border:1px solid #47609b;background:linear-gradient(95deg,#162b50,#282042);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 17px;margin:12px 0 14px;font-weight:750}
.pf-home-manual .btn{background:#304a71;color:#e8efff;border-color:#7285c5}
.pf-manual-actions{display:flex;gap:6px;flex-wrap:wrap;min-width:145px}
.pf-manual-form .field input,.pf-manual-form .field select{min-width:0}
.pf-report-manual-label{margin:18px 0 4px}.pf-report-manual-label p{margin:8px 0 0}
@media(max-width:700px){
 .pf-watch-log-card,.pf-home-manual{flex-direction:column;align-items:stretch}
 .pf-watch-log-card .btn,.pf-home-manual .btn{width:100%;min-height:51px}
 .pf-manual-actions{flex-wrap:nowrap}
 .pf-manual-form .fields{grid-template-columns:1fr}
}
@media print{.pf-watch-log-card,.pf-home-manual{display:none!important}}

/* ================================================================
   Pirela Fit 1.4.1 — Modo claro/oscuro + reportes visuales + PDF
   ================================================================ */
:root{--pfv-accent:#7651dd}
/* Elección de apariencia para el sitio completo (persistente en el navegador). */
body.pf-theme-light{--bg:#f0f4fb;--panel:#fff;--panel2:#f2f6fc;--panel3:#e7edf8;--border:#d7e2ef;--muted:#5a6e86;--text:#1b2d47;--sub:#38506e;--cyan:#137d83;--purple:#7152c5;--pink:#bd427c;--blue:#2868bd;--good:#19835e;--bad:#bc4159;--yellow:#a87020;background:#f0f4fb;color:#1b2d47}
body.pf-theme-light .sidebar,body.pf-theme-light .pf-bottom-nav{background:#e7eef9;border-color:#cbd8e9;color:#253750}
body.pf-theme-light .menu button{color:#425977}body.pf-theme-light .menu button.active,body.pf-theme-light .menu button:hover{background:#dbe5f4;color:#172c4c}
body.pf-theme-light .panel,body.pf-theme-light .pf-profile-banner,body.pf-theme-light .pf-machine-card,body.pf-theme-light .exercise-card,body.pf-theme-light .exercise-row,body.pf-theme-light .schedule-day,body.pf-theme-light .pf-report-card{background:#fff;color:#1c2d43;border-color:#d6e1ed}
body.pf-theme-light .panel h1,body.pf-theme-light .panel h2,body.pf-theme-light .panel h3,body.pf-theme-light .stat-number,body.pf-theme-light .panel strong{color:#1b2d47}
body.pf-theme-light .muted,body.pf-theme-light .hint,body.pf-theme-light .stat-label{color:#61758e}
body.pf-theme-light input,body.pf-theme-light select,body.pf-theme-light textarea{background:#fff;color:#162c48;border-color:#b6c7dc}
body.pf-theme-light .btn:not(.primary):not(.danger):not(.purple){background:#edf3fc;color:#253b59;border-color:#bfd0e5}
body.pf-theme-light .btn.danger{background:#fff0f3;color:#a73951;border-color:#e6adbe}
body.pf-theme-light .modal{background:#f8faff;color:#1b2c46;border-color:#d7e1ec}
body.pf-theme-light .modal .alert,body.pf-theme-light .alert{background:#e9f4fb;color:#20536b;border-color:#bcd8e8}
body.pf-theme-light .metric,body.pf-theme-light .settings-row,body.pf-theme-light .equipment-item,body.pf-theme-light .equipment-item.checked,body.pf-theme-light .day-button,body.pf-theme-light .feature-line,body.pf-theme-light .pf-shortcut-tile{background:#f7f9ff;color:#1a3050;border-color:#ccdaed}
body.pf-theme-light .pf-shortcut-tile span,body.pf-theme-light .pf-shortcut-tile strong{color:#1d2d48}
body.pf-theme-light .table td,body.pf-theme-light .table th{color:#233851;border-color:#dbe4ee}
body.pf-theme-light .pf-today,body.pf-theme-light .hero,body.pf-theme-light .pf-home-profile,body.pf-theme-light .live-hero{background:linear-gradient(125deg,#e9f1ff,#eae7fc);color:#1c3353;border-color:#c3d3e9}
body.pf-theme-light .pf-today p,body.pf-theme-light .pf-today h2,body.pf-theme-light .hero p,body.pf-theme-light .pf-home-profile small{color:#375073}
body.pf-theme-light .pf-mobile-top{background:#f0f4fb;color:#1c2d47}
body.pf-theme-light .pf-quick-link{background:#f4f8ff;color:#1e3657;border-color:#cddaea}
body.pf-theme-light .brand strong,body.pf-theme-light .brand small{color:#263850}
body.pf-theme-light .login-card{background:#fff;color:#152943;border-color:#d4e1ee}
body.pf-theme-light .login-card p{color:#64758e}
body.pf-theme-light .chart-label{fill:#64748b}
.pf-theme-row{margin-top:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:15px;background:rgba(125,138,174,.10);border:1px solid var(--border);border-radius:13px}
.pf-theme-row>span{flex:1;font-weight:700}.pf-theme-row select{width:auto;min-width:150px}
.pf-theme-hint{font-size:12px;color:var(--muted);margin:6px 0 0}
/* El reporte es intencionadamente claro por defecto, fiel al diseño de referencia. */
.pfv-report-wrap{max-width:1450px;margin:0 auto;min-width:0}
.pfv-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 15px;flex-wrap:wrap}
.pfv-actions:last-child{margin-top:15px}
.pfv-report{--pfv-card:#fff;--pfv-page:#f4f6fc;--pfv-text:#17253d;--pfv-muted:#65758d;--pfv-border:#d0d9eb;--pfv-track:#e6eafa;--pfv-soft:#f0f4fd;--pfv-accent:#7651dd;background:var(--pfv-page);color:var(--pfv-text);padding:10px;border-radius:18px;font-family:Manrope,'DM Sans',system-ui,sans-serif;font-size:13px;line-height:1.4}
.pfv-report *{box-sizing:border-box}
.pfv-report .pfv-card{border:1px solid var(--pfv-border);background:var(--pfv-card);border-radius:16px;padding:16px;min-width:0;box-shadow:0 1px 2px rgba(49,61,92,.04)}
.pfv-report h1,.pfv-report h2,.pfv-report h3,.pfv-report b,.pfv-report strong{color:var(--pfv-text)}
.pfv-report h2{font-size:17px;line-height:1.25;letter-spacing:-.035em;margin:0;font-weight:850}
.pfv-report p{margin:0;line-height:1.45}
.pfv-card-heading{display:flex;align-items:start;justify-content:space-between;gap:9px;margin-bottom:12px}
.pfv-card-heading p,.pfv-caption{color:var(--pfv-muted);font-size:11px}
.pfv-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;background:linear-gradient(115deg,#111f38 5%,#17264a 65%,#2e2757);border-radius:15px;padding:20px 23px;color:#fff;margin-bottom:10px;min-height:104px}
.pfv-banner-brand{display:flex;align-items:center;gap:14px;min-width:0}
.pfv-banner-brand img{width:58px;height:58px;object-fit:contain;flex-shrink:0}
.pfv-banner-brand h1{color:#fff;font-size:clamp(23px,2.2vw,35px);line-height:1.12;margin:0 0 5px;letter-spacing:-.04em}
.pfv-banner-brand p{color:#d5e2fa;font-size:14px}
.pfv-banner-date{color:#edf2ff;white-space:nowrap;font-size:12px}
.pfv-top-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr);gap:10px;margin-bottom:10px}
.pfv-id-main{display:flex;gap:14px;align-items:center}
.pfv-avatar{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;flex:none;overflow:hidden;border:3px solid #a09cfa;background:#e7eafa;font-size:30px}
.pfv-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.pfv-id-main h2{font-size:23px;margin:0 0 6px}
.pfv-id-main p{font-size:12px;color:var(--pfv-text)}
.pfv-id-main p b{color:#6742d7}
.pfv-target{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:13px;padding:11px;background:var(--pfv-soft);border-radius:10px;font-size:11px}
.pfv-target strong{font-size:13px}.pfv-goal{margin-top:9px}.pfv-goal-track{height:10px;border-radius:9px;background:#dce0e9;overflow:hidden}.pfv-goal-track i{height:100%;display:block;background:linear-gradient(90deg,#36ba8a,#65d879);border-radius:9px}.pfv-goal small{display:block;margin-top:5px;color:var(--pfv-muted)}
.pfv-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pfv-kpi{border-radius:11px;padding:11px 5px;background:var(--pfv-soft);text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:center;min-height:112px;gap:3px}
.pfv-kpi-icon{color:#754bde;font-size:22px;line-height:1}.pfv-kpi strong{font-size:clamp(19px,1.8vw,28px);line-height:1.15}.pfv-kpi span:not(.pfv-kpi-icon){font-size:11px;font-weight:650}.pfv-kpi small{font-size:10px;color:var(--pfv-muted)}
.pfv-row{display:grid;gap:10px;margin-bottom:10px}
.pfv-row-large{grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr)}
.pfv-row-thirds{grid-template-columns:minmax(0,1fr) minmax(0,.88fr) minmax(0,1.1fr)}
.pfv-row-bottom{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.pfv-weight-layout{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:8px;align-items:stretch}
.pfv-chart{display:block;width:100%;height:auto;min-width:0;max-width:100%}
.pfv-weight-stat{padding:14px;border-radius:11px;background:#eefaf3;border:1px solid #d5eadd;display:flex;flex-direction:column;justify-content:center;gap:10px}
.pfv-weight-stat strong{font-size:22px;color:#168a4c;line-height:1.13}.pfv-weight-stat strong.pfv-up{color:#b75b43}
.pfv-weight-stat p{font-size:12px}.pfv-weight-stat small{color:#687890;font-size:10px}
.pfv-circles{display:flex;justify-content:space-around;align-items:center;gap:8px;margin:12px 0 6px}
.pfv-ring-wrap{min-width:0;flex:1}
.pfv-ring{--ring-color:#7958e3;background:conic-gradient(var(--ring-color) calc(var(--ring-progress)*1%),#d9e0ec 0);width:min(100%,115px);aspect-ratio:1;border-radius:100%;margin:auto;padding:10px;display:grid;place-items:center}
.pfv-ring.purple{--ring-color:#7858dd}.pfv-ring.blue{--ring-color:#547cd9}.pfv-ring.green{--ring-color:#3fbb91}
.pfv-ring-core{background:var(--pfv-card);border-radius:100%;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:4px}
.pfv-ring-core strong{font-size:20px;letter-spacing:-.03em}.pfv-ring-core span{font-size:10px;color:var(--pfv-muted)}
.pfv-note{color:var(--pfv-muted);font-size:11px;margin-top:9px!important}
.pfv-legend{display:flex;gap:15px;flex-wrap:wrap;margin-top:7px;color:var(--pfv-muted);font-size:10px}
.pfv-legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px}
.pfv-kcal-row{display:grid;grid-template-columns:122px minmax(0,1fr);gap:10px;align-items:center;padding-top:12px}
.pfv-kcal-donut{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;padding:15px}
.pfv-kcal-donut>div{border-radius:50%;width:100%;height:100%;background:var(--pfv-card);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4px}.pfv-kcal-donut strong{font-size:21px}.pfv-kcal-donut span{font-size:9px}
.pfv-kcal-legend p{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;white-space:nowrap}.pfv-kcal-legend b{margin-left:auto}
.pfv-dot{width:9px;height:9px;border-radius:50%;flex:none}
.pfv-muscle-layout{display:grid;grid-template-columns:42% minmax(0,1fr);gap:6px;align-items:center}
.pfv-anatomy{display:flex;justify-content:space-evenly;align-items:center;gap:3px;width:100%}.pfv-anatomy-figure{width:50%;display:flex;flex-direction:column;align-items:center;gap:2px}.pfv-anatomy-figure svg{width:100%;height:auto;max-height:168px}.pfv-anatomy-figure>span{color:var(--pfv-muted);font-size:10px}
.pfv-muscle-bars{min-width:0}.pfv-muscle-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(24px,1.1fr) 25px;align-items:center;gap:5px;margin:6px 0;font-size:10px;color:var(--pfv-text)}.pfv-muscle-bar>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pfv-muscle-bar>div{height:7px;background:var(--pfv-track);border-radius:8px;overflow:hidden}.pfv-muscle-bar i{display:block;height:100%;background:linear-gradient(90deg,#a48af8,#7551db);border-radius:8px}.pfv-muscle-bar b{text-align:right}
.pfv-fine{font-size:10px;color:var(--pfv-muted);margin-top:9px!important}
.pfv-strength-table{border:1px solid var(--pfv-border);border-radius:10px;overflow:hidden}.pfv-strength-head,.pfv-strength-line{display:grid;grid-template-columns:minmax(0,1fr) 60px 95px;align-items:center;gap:10px;padding:9px 11px;font-size:11px}.pfv-strength-head{font-weight:800;background:#e9effb;color:#4a5871}.pfv-strength-line:nth-child(odd){background:#f7f9ff}.pfv-strength-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pfv-strength-line>b{color:#229267}
.pfv-analysis{background:linear-gradient(135deg,#f9faff,#f1edff)!important}.pfv-analysis-text{background:#fff;border:1px solid #e1def7;border-radius:10px;padding:12px;max-height:none;color:#273449;font-size:12px}.pfv-analysis-text p{margin:0 0 10px;line-height:1.5}.pfv-analysis-text p:last-child{margin:0}
.pfv-calendar{margin-bottom:10px}.pfv-days{display:grid;grid-template-columns:repeat(28,minmax(0,1fr));gap:3px}.pfv-day{text-align:center;padding:7px 0;border-radius:5px;background:#e5e9f2;color:#60708a;font-size:9px}.pfv-day.cumplido{background:#b2edce;color:#12643e}.pfv-day.incumplido{background:#f6c1ce;color:#8d2345}.pfv-day.justificado{background:#f8e4a4;color:#806414}.pfv-day.pendiente{background:#cbdcfe;color:#245caa}.pfv-day.sin_plan{opacity:.5}
.pfv-report-footer{text-align:center;color:var(--pfv-muted);font-size:10px;padding:13px 8px}
.pfv-empty{display:grid;place-content:center;min-height:150px;color:var(--pfv-muted);text-align:center;font-size:12px}
/* Un segundo tema dentro de los reportes. El PDF conserva el estilo claro a color. */
.pfv-report.pfv-dark{--pfv-card:#1b2a45;--pfv-page:#111d34;--pfv-text:#f0f4ff;--pfv-muted:#b8c8de;--pfv-border:#405172;--pfv-track:#334565;--pfv-soft:#253956}
.pfv-dark .pfv-weight-stat{background:#203d39;border-color:#2f6558}.pfv-dark .pfv-strength-head{background:#293b5a;color:#eef4ff}.pfv-dark .pfv-strength-line:nth-child(odd){background:#20304d}
.pfv-dark .pfv-analysis{background:#212f4c!important}.pfv-dark .pfv-analysis-text{background:#18273f;border-color:#465477;color:#e8edff}
.pfv-dark .pfv-chart text{fill:#ccd4e5}.pfv-dark .pfv-chart line{stroke:#53627e}.pfv-dark .pfv-strength-line>b{color:#85e4bd}
.pfv-dark .pfv-muscle-bar b,.pfv-dark .pfv-kpi strong{color:#edf4ff}
/* Pantallas pequeñas: columnas apiladas, jamás obligar a hacer zoom o desplazarse a los lados. */
@media(max-width:1320px){.pfv-top-grid{grid-template-columns:1fr}.pfv-row-large{grid-template-columns:1fr}.pfv-row-thirds{grid-template-columns:repeat(2,minmax(0,1fr))}.pfv-muscles{grid-column:1/-1}.pfv-anatomy-figure svg{max-height:190px}.pfv-muscle-layout{grid-template-columns:240px 1fr}}
@media(max-width:850px){.pfv-report{padding:7px}.pfv-banner{padding:15px}.pfv-row-thirds,.pfv-row-bottom{grid-template-columns:1fr}.pfv-top-grid{grid-template-columns:1fr}.pfv-weight-layout{grid-template-columns:1fr}.pfv-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.pfv-muscles{grid-column:auto}.pfv-days{grid-template-columns:repeat(14,minmax(0,1fr))}.pfv-muscle-layout{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:540px){.pfv-banner{flex-direction:column;align-items:flex-start;gap:10px}.pfv-banner-brand img{width:42px;height:42px}.pfv-banner h1{font-size:23px}.pfv-banner p{font-size:12px}.pfv-banner-date{font-size:11px}.pfv-report h2{font-size:16px}.pfv-report .pfv-card{padding:13px;border-radius:12px}.pfv-id-main h2{font-size:20px}.pfv-id-main p{font-size:11px}.pfv-avatar{width:58px;height:58px}.pfv-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pfv-kpi{min-height:86px}.pfv-kpi strong{font-size:24px}.pfv-circles{gap:4px}.pfv-ring{width:min(100%,100px);padding:8px}.pfv-ring-core strong{font-size:17px}.pfv-muscle-layout{grid-template-columns:1fr}.pfv-anatomy{max-width:310px;margin:auto}.pfv-anatomy-figure svg{max-height:210px}.pfv-strength-head,.pfv-strength-line{grid-template-columns:minmax(0,1fr) 39px 77px;font-size:10px;gap:4px;padding:8px}.pfv-days{grid-template-columns:repeat(14,minmax(0,1fr))}}
/* PDF: conserva colores, gráficos y orden con fondo claro. */
@page{size:A4 landscape;margin:8mm}
@media print{
 html,body{background:#fff!important;color:#17253d!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
 body:before{display:none!important}
 .sidebar,.pf-bottom-nav,.pf-mobile-top,.topbar,.footer,.pf-mobile-account-actions,.pfv-actions,.no-print,.modal-backdrop,.toast{display:none!important}
 .layout{display:block!important;min-height:0!important}
 .content{max-width:none!important;padding:0!important;margin:0!important;width:100%!important}
 .pfv-report-wrap{max-width:none!important}
 .pfv-report,.pfv-report.pfv-dark{--pfv-card:#fff!important;--pfv-page:#f4f6fc!important;--pfv-text:#17253d!important;--pfv-muted:#65758d!important;--pfv-border:#d0d9eb!important;--pfv-track:#e6eafa!important;--pfv-soft:#f0f4fd!important;--pfv-accent:#7651dd!important;background:#f4f6fc!important;color:#17253d!important;padding:5px!important;border:0!important;border-radius:0!important;box-shadow:none!important;font-size:10px!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
 .pfv-report *, .pfv-report *:before,.pfv-report *:after{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
 .pfv-report .pfv-card{background:#fff!important;color:#17253d!important;border-color:#d0d9eb!important;box-shadow:none!important;padding:11px!important;border-radius:9px!important;break-inside:avoid-page;page-break-inside:avoid}
 .pfv-banner{background:#17264a!important;color:#fff!important;border-radius:8px!important;padding:12px 15px!important;min-height:60px!important;margin-bottom:6px!important}
 .pfv-banner h1,.pfv-banner p,.pfv-banner-date{color:#fff!important}
 .pfv-banner-brand img{width:37px;height:37px}.pfv-banner h1{font-size:23px!important}.pfv-banner p{font-size:11px!important}
 .pfv-row,.pfv-top-grid{gap:6px!important;margin-bottom:6px!important}
 .pfv-top-grid{grid-template-columns:.9fr 1.6fr!important}.pfv-row-large{grid-template-columns:1.45fr .85fr!important}.pfv-row-thirds{grid-template-columns:1.05fr .9fr 1.15fr!important}.pfv-row-bottom{grid-template-columns:1fr 1.25fr!important}
 .pfv-report h2{color:#17253d!important;font-size:13px!important}.pfv-report h3,.pfv-report b,.pfv-report strong{color:#17253d!important}
 .pfv-id-main h2{font-size:20px!important}.pfv-avatar{width:49px!important;height:49px!important}.pfv-id-main p,.pfv-target,.pfv-goal small{font-size:9px!important}.pfv-kpi{min-height:63px!important;padding:6px 2px!important;background:#eef3fd!important}.pfv-kpi strong{font-size:19px!important}.pfv-kpi span{font-size:9px!important}.pfv-kpi-icon{font-size:15px!important}
 .pfv-weight-layout{grid-template-columns:1fr 110px!important}.pfv-weight-stat{background:#e8f6eb!important;padding:9px!important;border-color:#d5ead7!important}.pfv-weight-stat strong{font-size:18px!important;color:#188a4c!important}.pfv-weight-stat p{font-size:10px!important}.pfv-weight-stat small{font-size:9px!important}
 .pfv-ring{width:73px!important;padding:6px!important}.pfv-ring-core{background:#fff!important}.pfv-ring-core strong{font-size:13px!important}.pfv-ring-core span{font-size:8px!important}.pfv-circles{gap:2px!important}
 .pfv-chart{max-height:136px!important}.pfv-weight-chart{max-height:145px!important}
 .pfv-muscle-layout{grid-template-columns:44% 1fr!important}.pfv-anatomy svg{max-height:140px!important}.pfv-muscle-bar{margin:3px 0!important;font-size:8px!important}
 .pfv-kcal-row{grid-template-columns:95px 1fr!important;gap:5px!important;padding-top:2px!important}.pfv-kcal-donut{width:88px!important;height:88px!important;padding:10px!important}.pfv-kcal-donut strong{font-size:14px!important}.pfv-kcal-donut span,.pfv-kcal-legend p{font-size:8px!important}
 .pfv-analysis,.pfv-analysis-text{background:#f5f1ff!important;color:#273449!important;border-color:#d9cfff!important}.pfv-analysis-text{padding:9px!important;font-size:10px!important}
 .pfv-strength-head{background:#e9effb!important;color:#4a5871!important}.pfv-strength-line:nth-child(odd){background:#f7f9ff!important}.pfv-strength-line>b{color:#138754!important}
 .pfv-day{padding:5px 0!important}.pfv-day.cumplido{background:#b2edce!important}.pfv-day.incumplido{background:#f6c1ce!important}.pfv-day.justificado{background:#f8e4a4!important}.pfv-days{grid-template-columns:repeat(28,minmax(0,1fr))!important}
 .pfv-report-footer{font-size:8px!important;padding:6px 0!important}
 .pfv-report svg,.pfv-report svg *{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
 .pfv-report .pfv-ring.purple{--ring-color:#7958e3!important}.pfv-report .pfv-ring.blue{--ring-color:#547cd9!important}.pfv-report .pfv-ring.green{--ring-color:#3fbb91!important}
 .pfv-report .pfv-kcal-donut>div{background:#fff!important}
 .pfv-card-heading{margin-bottom:6px!important}
 .pfv-fine,.pfv-note{font-size:8px!important;margin-top:5px!important}
 .pfv-calendar{break-before:page}
}
@media print{
 /* No forzar una página adicional para el calendario. */
 .pfv-calendar{break-before:auto!important;page-break-before:auto!important}
 .pfv-row-thirds,.pfv-row-bottom,.pfv-calendar{break-inside:avoid-page;page-break-inside:avoid}
}
@media print{
 .pfv-report{zoom:.87!important}
 .pfv-days{grid-template-columns:repeat(28,minmax(0,1fr))!important}
 .pfv-day{padding:3px 0!important;font-size:7px!important}
}

/* === Pirela Fit 1.4.2 · Medios globales, reportes y PDF a color === */
.pf-system-section{margin-top:18px}
.pf-system-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:14px}
.pf-system-tile{display:flex;flex-direction:column;gap:10px;padding:13px;border-radius:16px;border:1px solid #3c5070;background:linear-gradient(150deg,#1c2a46,#15243c);min-width:0}
.pf-system-preview{height:160px;border-radius:12px;background:repeating-conic-gradient(#bfcbdc 0% 25%,#e3eaf3 0% 50%) 50%/20px 20px;display:grid;place-items:center;overflow:hidden}
.pf-system-preview img{width:100%;height:100%;object-fit:contain}
.pf-system-fallback{display:grid;place-items:center;color:#475776;font-size:44px;gap:5px;text-align:center}.pf-system-fallback small{font-size:12px;color:#4b5970}
.pf-system-meta h3{font-size:17px;margin:0 0 5px}.pf-system-meta p{min-height:27px;margin:0 0 6px}.pf-system-meta small{display:block;font-size:11px;word-break:break-all}
.pf-system-form{display:grid;gap:8px;margin-top:auto}.pf-system-form input[type=file]{font-size:13px;max-width:100%;padding:9px}.pf-system-form button,.pf-system-tile>.btn{width:100%}
.pf-system-colors{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:13px;align-items:end;margin-top:16px}.pf-system-colors .field{font-size:12px;line-height:1.4}
.pf-system-colors input[type=color]{padding:3px;height:44px;min-height:44px;background:transparent;border-radius:8px;cursor:pointer}
.pf-system-demo{max-width:700px;margin-top:17px;padding:17px;border-radius:14px;border:1px solid #34445e;background:#101b2e}.pf-system-demo .pfv-muscle-bar{grid-template-columns:130px minmax(0,1fr) 40px;font-size:12px;color:#e7efff}
.pfv-banner{position:relative;isolation:isolate;overflow:hidden}
.pfv-banner.pfv-has-header:before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(13,24,51,.94) 0%,rgba(23,31,61,.82) 52%,rgba(20,30,57,.24) 100%),var(--pfv-header-image);background-position:center;background-size:cover;z-index:-1;opacity:.95}
.pfv-banner.pfv-has-header .pfv-banner-brand,.pfv-banner.pfv-has-header .pfv-banner-date{z-index:1;position:relative}
.pfv-cover-mini{width:75px;height:63px;max-width:16%;object-fit:contain;position:relative;z-index:1;flex:none;filter:drop-shadow(0 5px 10px #1116)}
.pfv-analysis-layout{display:flex;align-items:center;gap:9px;min-width:0}.pfv-analysis-layout .pfv-analysis-text{flex:1;min-width:0}.pfv-ai-decor{width:105px;max-width:26%;height:125px;object-fit:contain;align-self:center;flex:none}
.pfv-report{--pfv-accent:var(--pfv-custom-accent,#7655dc)}
.pfv-goal-track i{background:linear-gradient(90deg,#31bd99,var(--pfv-custom-accent,#7655dc))}
.pfv-muscle-bar>div>i{print-color-adjust:exact;-webkit-print-color-adjust:exact}
/* The anatomical art is in assets/report-body, or supplied by the admin media manager. */
.pfv-anatomy svg{width:100%;height:auto;overflow:visible}
@media(max-width:700px){.pf-system-grid{grid-template-columns:1fr}.pf-system-preview{height:135px}.pf-system-colors{grid-template-columns:repeat(2,minmax(0,1fr))}.pfv-ai-decor{width:64px;height:95px}.pfv-cover-mini{width:48px;height:45px}}
@page{size:A4 landscape;margin:7mm}
@media print{
 html,body{background:#fff!important;color:#17253d!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
 .pfv-banner,.pfv-banner:before,.pfv-card,.pfv-ring,.pfv-ring-core,.pfv-kpi,.pfv-kcal-donut,.pfv-kcal-donut>div,.pfv-weight-stat,.pfv-muscle-bar,.pfv-muscle-bar>div,.pfv-muscle-bar i,.pfv-analysis-text,.pfv-strength-head,.pfv-strength-line,.pfv-day{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
 .pfv-report .pfv-banner.pfv-has-header{background:#17264a!important}
 .pfv-banner.pfv-has-header:before{background-image:linear-gradient(90deg,rgba(13,24,51,.92),rgba(23,31,61,.35)),var(--pfv-header-image)!important;opacity:1!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
 .pfv-cover-mini{height:49px!important;width:58px!important;max-width:10%!important}
 .pfv-ai-decor{width:64px!important;height:80px!important;max-width:18%!important}
 .pfv-anatomy svg{max-height:136px!important}
 .pfv-muscle-bar>div{background:#e4e7f1!important}
 .pfv-muscle-bar>div i{background-color:inherit;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
 .pfv-row-thirds,.pfv-row-bottom,.pfv-top-grid{break-inside:avoid-page;page-break-inside:avoid}
}
/* Better contrast for light mode administrator. */
.pf-theme-light .pf-system-tile{background:#f2f5fc;border-color:#cdd8e9}.pf-theme-light .pf-system-meta h3{color:#193056}.pf-theme-light .pf-system-demo{background:#18283e}.pf-theme-light .pf-system-meta small{color:#667994}
/* Expanded evidence section is for the PDF only, so the screen dashboard stays compact. */
.pfv-print-detail{display:none}
@media print{
 .pfv-print-detail{display:block!important;padding:4px 7px 6px;border-radius:10px;color:#1a2b49;background:#f6f8fe;break-before:auto}
 .pfv-print-detail-head{margin:7px 0}.pfv-print-detail-head h2{margin:0 0 4px;font-size:16px!important}.pfv-print-detail-head p{margin:0;font-size:9px;color:#506380}
 .pfv-print-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:8px 0;break-inside:avoid}
 .pfv-detail-box{border:1px solid #d4ddf0;border-radius:9px;background:#fff;padding:8px 11px;min-width:0;break-inside:avoid}
 .pfv-detail-box h3{color:#2a3761!important;font-size:12px!important;margin:0 0 6px}
 .pfv-detail-box table{width:100%;border-collapse:collapse;font-size:8.5px;color:#18263f}
 .pfv-detail-box th{background:#e7edfa;color:#3e4b68;padding:5px;text-align:left}
 .pfv-detail-box td{padding:4px 5px;border-bottom:1px solid #e9edf5}
 .pfv-detail-box p{font-size:8.5px;color:#374962;line-height:1.5;margin:0 0 8px}
 .pfv-report .pfv-print-detail,.pfv-report .pfv-print-detail *{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
}

/* Pirela Fit 1.4.5: fotos corporales sin superposiciones ni recortes */
.pfv-anatomy-figure .pfv-anatomy-upload{display:block;width:100%;height:168px;max-width:100%;object-fit:contain;object-position:center center;border:0;background:transparent}
.pfv-anatomy-figure.pfv-custom-figure{min-width:0}
.pfv-body-view-select{display:inline-flex;align-items:center;gap:9px;padding:4px 10px;font-size:13px;font-weight:700;color:var(--muted);border:1px solid var(--border);border-radius:12px;white-space:nowrap}
.pfv-body-view-select select{font-size:16px;min-height:37px;background:var(--input-bg,#15243a);color:inherit;border-radius:8px;border:1px solid var(--border);padding:4px 8px;max-width:150px}
.pfv-body-info{font-size:11px;line-height:1.5;color:var(--pfv-muted);margin:0 0 8px}
.pfv-body-info strong{color:var(--pfv-text)}
@media(max-width:1320px){.pfv-anatomy-figure .pfv-anatomy-upload{height:190px}}
@media(max-width:540px){.pfv-anatomy-figure .pfv-anatomy-upload{height:210px}.pfv-body-view-select{width:100%;justify-content:space-between}}
@media print{.pfv-anatomy-figure .pfv-anatomy-upload{height:136px!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}.pfv-body-info{color:#536072!important}}

/* 1.4.6: selector visible dentro de Zonas trabajadas */
.pfv-body-controls{display:grid;gap:9px;margin:9px 0 16px}
.pfv-figure-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pfv-figure-option{border:1px solid var(--pfv-border,#48617f);border-radius:12px;background:var(--pfv-card,#172540);color:var(--pfv-text,#f3f5ff);padding:11px 6px;cursor:pointer;display:grid;gap:4px;min-width:0;text-align:center;align-content:center}
.pfv-figure-option strong{font-size:14px;line-height:1.2}
.pfv-figure-option small{color:var(--pfv-muted,#b4c5d9);font-size:11px}
.pfv-figure-option.is-selected{border-color:#7c6aff;background:linear-gradient(135deg,#5c46bd,#4f3e8a);color:white;box-shadow:inset 0 0 0 1px #afa2ff}
.pfv-figure-option.is-selected small{color:#f2ecff}
.pfv-figure-option:focus-visible,.pfv-figure-preview:focus-visible{outline:3px solid #41d4cf;outline-offset:3px}
.pfv-figure-choose{padding:15px;border:1px solid #8b6cf7;border-radius:15px;background:rgba(126,104,234,.08)}
.pfv-figure-choose h3{margin:0 0 5px;font-size:17px}
.pfv-figure-choose p{margin:0 0 13px;font-size:13px;line-height:1.5;color:var(--pfv-text,#f3f5ff)}
.pfv-figure-previews{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pfv-figure-preview{border:1px solid #627ba8;border-radius:14px;padding:12px;display:flex;align-items:center;flex-direction:column;gap:7px;cursor:pointer;background:rgba(27,44,74,.72);color:#eef5ff;min-width:0}
.pfv-figure-preview img{width:100%;height:180px;object-fit:contain;object-position:center;display:block;border-radius:10px}
.pfv-figure-preview strong{font-size:15px}.pfv-figure-preview small{font-size:11px;opacity:.86}
.pfv-save-figure{justify-self:start;white-space:normal;text-align:left;line-height:1.4;min-height:43px}
.pfv-body-info{font-size:13px;line-height:1.5;margin:0;color:var(--pfv-muted,#adbed6)}
.pfv-body-info strong{color:var(--pfv-text,#fff)}
@media(max-width:600px){.pfv-figure-choices{gap:5px}.pfv-figure-option{padding:10px 3px}.pfv-figure-option strong{font-size:13px}.pfv-figure-option small{font-size:10px}.pfv-figure-preview img{height:150px}.pfv-figure-choose{padding:12px}}
@media print{.pfv-figure-choices,.pfv-save-figure,.pfv-figure-choose p{display:none!important}.pfv-figure-choose{border:none!important;background:transparent!important;padding:8px!important}.pfv-figure-preview{border:1px solid #d4dcf0!important;background:white!important;color:#16253c!important;break-inside:avoid}.pfv-figure-preview img{height:120px!important}.pfv-figure-preview small{display:none!important}}


/* Pirela Fit 1.4.7 — imágenes proporcionadas y mapa de calor relativo */
/* La elección General presenta fotos disponibles en galería de ancho completo. */
.pfv-fullwidth-chooser{width:100%;max-width:100%;margin:12px 0 18px}
.pfv-fullwidth-chooser .pfv-figure-choose{width:100%;min-width:0}
.pfv-fullwidth-chooser .pfv-figure-previews{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.pfv-fullwidth-chooser .pfv-figure-preview{width:100%;min-width:0;min-height:0;display:grid;grid-template-rows: minmax(175px,230px) auto auto;align-content:center;justify-items:center;gap:7px;padding:14px 10px}
.pfv-fullwidth-chooser .pfv-figure-preview img{height:100%!important;width:100%!important;max-width:100%;object-fit:contain!important;object-position:50% 50%;min-height:0}
.pfv-fullwidth-chooser .pfv-figure-preview strong{font-size:14px!important;white-space:normal;line-height:1.25;text-align:center}
.pfv-fullwidth-chooser .pfv-figure-preview small{font-size:11px;text-align:center;line-height:1.3}
/* La figura seleccionada usa un marco estable: caben fotos horizontales, verticales y cuadradas. */
.pfv-muscles{min-width:0;container-type:inline-size}
.pfv-muscle-layout{min-width:0}
.pfv-anatomy-figure .pfv-custom-photo-frame{display:flex;align-items:center;justify-content:center;width:100%;height:220px;overflow:hidden;border-radius:8px;background:rgba(125,146,183,.08)}
.pfv-anatomy-figure .pfv-custom-photo-frame .pfv-anatomy-upload{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain!important;object-position:center!important}
.pfv-anatomy-figure.pfv-custom-figure{width:50%;min-width:0}
.pfv-heat-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;width:100%;margin-top:6px}
.pfv-heat-chip{border:1px solid var(--pfv-border,#405172);padding:2px 4px;border-radius:7px;font-size:9px;white-space:nowrap;line-height:1.3;color:var(--pfv-text,#f4f6ff)}
.pfv-heat-chip i,.pfv-heat-legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px;vertical-align:middle}
.pfv-heat-settings{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0 10px;font-size:12px;color:var(--pfv-text,#f2f6ff)}
.pfv-heat-mode{border:1px solid var(--pfv-border,#435676);border-radius:9px;background:var(--pfv-card,#1c2c46);color:var(--pfv-text,#eaf1fe);min-height:36px;padding:7px 10px;cursor:pointer;font-weight:650;font-size:11px}
.pfv-muscle-bar-detailed{grid-template-columns:minmax(0,1fr) minmax(30px,1.25fr) minmax(65px,.7fr)!important;gap:7px!important;margin:8px 0!important;font-size:11px!important}
.pfv-muscle-bar-detailed>span{overflow:visible;white-space:normal;line-height:1.3}
.pfv-muscle-bar-detailed .pfv-heat-track{height:11px;border-radius:7px;overflow:hidden;background:var(--pfv-track,#364966)}
.pfv-muscle-bar-detailed .pfv-heat-track i{height:100%;display:block;border-radius:7px}
.pfv-muscle-bar-detailed b{display:flex;flex-direction:column;align-items:flex-end;text-align:right;line-height:1.2;white-space:nowrap;font-size:12px}
.pfv-muscle-bar-detailed b small{font-size:9px;font-weight:500;color:var(--pfv-muted,#b7c8df)}
.pfv-heat-legend{display:flex;flex-wrap:wrap;gap:9px 13px;margin:12px 0 6px;font-size:10px;color:var(--pfv-text,#eff5ff)}
.pfv-heat-legend span{display:flex;align-items:center;white-space:nowrap}
.pfv-admin-presets{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0}
.pfv-admin-presets small{color:var(--muted)}
@container (max-width:540px){
 .pfv-muscle-layout{display:grid;grid-template-columns:1fr!important}
 .pfv-anatomy{max-width:100%;width:100%;justify-content:center;gap:10px}
 .pfv-anatomy-figure{max-width:50%}
 .pfv-anatomy-figure svg{max-height:235px!important}
 .pfv-anatomy-figure .pfv-custom-photo-frame{height:250px}
 .pfv-muscle-bars{width:100%}
}
@media(max-width:560px){
 .pfv-fullwidth-chooser .pfv-figure-previews{gap:8px}
 .pfv-fullwidth-chooser .pfv-figure-preview{grid-template-rows:minmax(145px,180px) auto auto;padding:10px 5px}
 .pfv-muscle-bar-detailed{grid-template-columns:minmax(0,1fr) minmax(25px,1.2fr) 75px!important}
 .pfv-anatomy-figure .pfv-custom-photo-frame{height:200px}
}
@media print{
 .pfv-fullwidth-chooser,.pfv-heat-settings{display:none!important}
 .pfv-heat-legend{display:flex!important;color:#31425a!important;gap:5px!important;margin:5px 0!important;font-size:8px!important}
 .pfv-heat-legend i,.pfv-heat-chip i{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
 .pfv-muscle-bar-detailed{grid-template-columns:minmax(0,1fr) minmax(18px,1.2fr) 53px!important;margin:3px 0!important;font-size:8px!important;gap:3px!important}
 .pfv-muscle-bar-detailed .pfv-heat-track{height:7px!important}
 .pfv-muscle-bar-detailed b{font-size:9px!important}.pfv-muscle-bar-detailed b small{font-size:7px!important}
 .pfv-anatomy-figure .pfv-custom-photo-frame{height:130px!important;background:transparent!important}
 .pfv-anatomy-figure .pfv-custom-photo-frame .pfv-anatomy-upload{height:100%!important;object-fit:contain!important}
 .pfv-heat-chips{gap:2px!important}.pfv-heat-chip{font-size:7px!important;padding:1px 2px!important;color:#273449!important}
}


/* ==== Pirela Fit 1.4.8 – fotos corporales + mapa térmico combinado ==== */

.pfv-muscle-layout{grid-template-columns:minmax(300px,46%) minmax(0,1fr)!important;gap:14px!important;align-items:start}
.pfv-anatomy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;max-width:none!important}
.pfv-anatomy-figure{width:100%!important;max-width:none!important;align-items:stretch!important;gap:8px!important}
.pfv-anatomy-figure>span{display:block;text-align:center;font-size:12px!important;font-weight:700;color:var(--pfv-text,#eef4ff)}
.pfv-anatomy-combo{display:grid;grid-template-rows:auto auto;gap:10px;background:rgba(18,31,55,.35);border:1px solid rgba(116,140,184,.25);border-radius:16px;padding:10px;min-width:0}
.pfv-anatomy-figure.pfv-no-photo .pfv-anatomy-combo{grid-template-rows:auto}
.pfv-custom-photo-frame{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:3/4;min-height:180px;max-height:240px;overflow:hidden;border-radius:14px;background:linear-gradient(180deg,rgba(133,155,194,.15),rgba(64,87,121,.08));border:1px solid rgba(135,158,198,.25)}
.pfv-anatomy-upload{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center center!important;background:transparent}
.pfv-heat-mini{display:flex;align-items:center;justify-content:center;width:100%;min-height:140px;padding:4px 0}
.pfv-heat-mini svg{width:100%;max-width:190px;height:auto;display:block;overflow:visible;filter:drop-shadow(0 6px 10px rgba(0,0,0,.16))}
.pfv-heat-chips{justify-content:center;gap:6px!important;margin-top:0!important}
.pfv-heat-chip{font-size:10px!important;padding:4px 7px!important;border-radius:999px;background:rgba(255,255,255,.03)}
.pfv-heat-chip i{width:10px;height:10px;border-radius:50%}
.pfv-figure-preview img,.pfv-fullwidth-chooser .pfv-figure-preview img{width:100%!important;height:100%!important;min-height:0!important;aspect-ratio:3/4;object-fit:contain!important;object-position:center center!important;background:linear-gradient(180deg,rgba(133,155,194,.10),rgba(64,87,121,.04));border-radius:12px}
.pfv-fullwidth-chooser .pfv-figure-preview{grid-template-rows:minmax(170px,240px) auto auto!important}
.pfv-heat-track{position:relative;background:rgba(143,161,191,.22);border-radius:999px;overflow:hidden}
.pfv-heat-track i{display:block;height:100%;border-radius:999px;box-shadow:0 0 10px rgba(255,255,255,.08) inset}
@media (max-width:1100px){
  .pfv-muscle-layout{grid-template-columns:1fr!important}
  .pfv-anatomy{max-width:540px;margin:0 auto}
}
@media (max-width:760px){
  .pfv-anatomy{grid-template-columns:1fr;max-width:360px}
  .pfv-custom-photo-frame{min-height:170px;max-height:none}
  .pfv-heat-mini svg{max-width:170px}
}
@media print{
  .pfv-muscle-layout{grid-template-columns:44% 1fr!important;gap:10px!important}
  .pfv-anatomy{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}
  .pfv-anatomy-combo{padding:6px!important;border-color:#d6dce8!important;background:white!important}
  .pfv-custom-photo-frame{min-height:118px!important;max-height:118px!important;background:white!important;border-color:#d6dce8!important}
  .pfv-heat-mini{min-height:108px!important}
  .pfv-heat-mini svg{max-width:140px!important;filter:none!important}
  .pfv-heat-chip{font-size:7px!important;padding:2px 4px!important;color:#273449!important;background:white!important;border-color:#d4dbe8!important}
}


/* Pirela Fit 1.4.9 — Administración de ejercicios personalizados */
.pf-custom-exercises-intro .panel-title{align-items:center;gap:14px;flex-wrap:wrap}
.pf-custom-exercise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}
.pf-custom-exercise-card{padding:0;overflow:hidden}
.pf-custom-exercise-card>img{display:block;width:100%;height:210px;object-fit:contain;background:linear-gradient(135deg,#15233b,#29324f)}
.pf-custom-exercise-body{padding:18px;display:flex;flex-direction:column;gap:10px}
.pf-custom-exercise-body h3{margin:0;line-height:1.3}
.pf-custom-exercise-body p{margin:0}
.pf-custom-exercise-body>.row{display:flex;gap:8px;flex-wrap:wrap}
.pf-custom-equipment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px}
.pf-custom-equipment-check{border:1px solid var(--line,#50617b);border-radius:12px;padding:12px;display:flex;gap:10px;align-items:center;background:rgba(104,119,157,.06);cursor:pointer;font-size:14px}
.pf-custom-equipment-check input{width:18px;height:18px;flex:0 0 auto;accent-color:#8a60ef}
.pf-custom-photo-field{padding:16px;border:1px solid var(--line,#50617b);border-radius:16px;display:grid;gap:12px}
.pf-custom-photo-field h3,.pf-custom-photo-field p{margin:0}
@media(max-width:540px){.pf-custom-exercise-card>img{height:185px}.pf-custom-equipment-grid{grid-template-columns:1fr 1fr}.pf-custom-equipment-check{font-size:12px;padding:9px}}

/* 1.4.10: círculo dual y comienzo anticipado con cuenta regresiva */
.pf-live-modern .pf-live-ring.is-rest.pf-can-fast-start{--pf-accent:#40e6df;box-shadow:0 0 25px rgba(49,217,204,.27),0 0 0 7px rgba(29,65,75,.16);}
.pf-live-modern .pf-live-ring.is-rest.pf-can-fast-start:focus-visible{outline:3px solid #7cfaf3;outline-offset:5px}
.pf-live-modern .pf-live-ring.is-rest.pf-can-fast-start .pf-ring-caption{color:#80f6ea;font-weight:800}
.pf-primary-actions .pf-early-start-btn{background:linear-gradient(110deg,#14afbd,#21b6a7)!important;color:#081c29!important;border:1px solid #68eedd!important}

/* =======================================================================
   PIRELA FIT · 1.4.11 · Tema claro/oscuro integral
   Colores semánticos y excepciones de contraste (pantalla únicamente).
   El informe/PDF conserva su paleta independiente y sus reglas de impresión.
   ======================================================================= */
@media screen {
  body {
    --pf-app-bg: #080f22;
    --pf-surface: #182741;
    --pf-surface-2: #202f4a;
    --pf-surface-soft: #14233b;
    --pf-surface-deep: #0d192d;
    --pf-stroke: #3b4d6b;
    --pf-ink: #f0f5ff;
    --pf-secondary: #bdcce0;
    --pf-action-ink: #d9e8fc;
    --pf-shadow: rgba(2, 9, 23, .25);
  }
  body.pf-theme-light {
    color-scheme: light;
    --pf-app-bg: #f0f4fb;
    --pf-surface: #fff;
    --pf-surface-2: #f3f7fe;
    --pf-surface-soft: #eaf1fa;
    --pf-surface-deep: #e3ebf7;
    --pf-stroke: #cbd9e9;
    --pf-ink: #1b2d47;
    --pf-secondary: #526983;
    --pf-action-ink: #284361;
    --pf-shadow: rgba(29, 55, 96, .10);
    background: var(--pf-app-bg);
    color: var(--pf-ink);
  }
  /* La clase .pf-app asignaba siempre el fondo nocturno, aunque el body fuera claro. */
  body .pf-app { background: var(--pf-app-bg); color: var(--pf-ink); }
  body.pf-theme-light .pf-app,
  body.pf-theme-light .pf-app .content { background: var(--pf-app-bg); color: var(--pf-ink); }

  /* Barra lateral, menú y navegación móvil. */
  body.pf-theme-light .pf-app .sidebar,
  body.pf-theme-light .pf-bottom-nav { background: #e7eef9; border-color: var(--pf-stroke); color: var(--pf-ink); }
  body.pf-theme-light .pf-app .pf-brand strong,
  body.pf-theme-light .pf-brand small,
  body.pf-theme-light .brand strong,
  body.pf-theme-light .brand small { color: var(--pf-ink); }
  body.pf-theme-light .pf-app .menu button { color: #354e70; }
  body.pf-theme-light .pf-app .menu button:hover,
  body.pf-theme-light .pf-app .menu button.active {
    background: #d8e4f5;
    color: #193453;
    box-shadow: inset 3px 0 0 #944ae4;
  }
  body.pf-theme-light .side-profile { background: #dbe6f5; color: var(--pf-ink); }
  body.pf-theme-light .pf-mobile-top { background: transparent; color: var(--pf-ink); }
  body.pf-theme-light .pf-header-more { background: #e5edf9; color: #2b3e67; border-color: var(--pf-stroke); }
  body.pf-theme-light .pf-header-logout { background: #f9edf6; border-color: #e4b8d4; }
  body.pf-theme-light .pf-bottom-nav {
    box-shadow: 0 -10px 30px rgba(29, 55, 96, .08);
  }
  body.pf-theme-light .pf-bottom-nav button { color: #46617d; }
  body.pf-theme-light .pf-bottom-nav button.active { color: #7931c2; }
  body.pf-theme-light .mobile-head button { background: #e9effa; color: #33506d; }
  body.pf-theme-light .mobile-head button.active { background: #d8f2ef; color: #11655b; }

  /* Contenedores y tipografía: ninguna tarjeta clara sobre fondo oscuro. */
  body.pf-theme-light .pf-app .panel,
  body.pf-theme-light .pf-app .panel.soft,
  body.pf-theme-light .pf-machine-card,
  body.pf-theme-light .exercise-card,
  body.pf-theme-light .pf-app .exercise-card,
  body.pf-theme-light .exercise-row,
  body.pf-theme-light .schedule-day,
  body.pf-theme-light .pf-report-card,
  body.pf-theme-light .pf-media-card,
  body.pf-theme-light .pf-system-tile {
    background: var(--pf-surface);
    color: var(--pf-ink);
    border-color: var(--pf-stroke);
    box-shadow: 0 9px 25px var(--pf-shadow);
  }
  body.pf-theme-light .pf-app .panel.highlight { background: linear-gradient(125deg,#edf6ff,#f5edff); }
  body.pf-theme-light :is(.field,.checkrow,.profile-card .mini) { color: #385573; }
  body.pf-theme-light :is(.muted,.hint,.subtle,.stat-label,.pf-theme-hint) { color: #536a83; }
  body.pf-theme-light :is(.metric,.settings-row,.feature-line,.pf-photo-rotation,.pf-custom-photo-field,.pf-custom-equipment-check) {
    background: var(--pf-surface-2);
    color: var(--pf-ink);
    border-color: var(--pf-stroke);
  }
  body.pf-theme-light .metric strong { color: var(--pf-ink); }
  body.pf-theme-light .stat-symbol { background: #e9edfa; color: #6d48b7; }
  body.pf-theme-light .avatar { background: #e2ebfa; border-color: #c4d2e6; }
  body.pf-theme-light .empty { background: rgba(241,246,254,.65); color: #526a85; border-color: #b8cadf; }
  body.pf-theme-light .footer { color: #5b708c; }
  body.pf-theme-light :is(input,select,textarea) { background: #fff; color: #1b304d; border-color: #b8c9df; }
  body.pf-theme-light :is(input,select,textarea):focus-visible { border-color: #328b9c; box-shadow: 0 0 0 3px #328b9c22; }
  body.pf-theme-light input::placeholder,
  body.pf-theme-light textarea::placeholder { color: #6b8098; opacity: 1; }
  body.pf-theme-light .tag,
  body.pf-theme-light .badge { background: #e4edfa; color: #2a466a; }
  body.pf-theme-light .badge.good { background: #d8f5e7; color: #126347; }
  body.pf-theme-light .badge.bad { background: #ffe3e9; color: #a22e49; }
  body.pf-theme-light .badge.info { background: #e0ebff; color: #30569c; }
  body.pf-theme-light .badge.warn { background: #fff1cf; color: #88580d; }
  body.pf-theme-light .danger-text { color: #b82f51; }
  body.pf-theme-light .success-text { color: #137859; }
  body.pf-theme-light .btn.ghost { background: transparent !important; border-color: transparent !important; color: #435d78 !important; }
  body.pf-theme-light .pf-app .btn:not(.primary):not(.danger):not(.purple):not(.ghost) { background: #eaf1fc; color: #274160; border-color: #bdcde3; }
  body.pf-theme-light .pf-app .btn.danger { background: #fff0f3; border-color: #e6acbb; color: #a5324c; }
  body.pf-theme-light .pf-app .btn.purple { color: #fff; }
  body.pf-theme-light .pf-app .sidebar .side-bottom .btn[data-action="logout"] {
    background: #f8eaf2; color: #9d2d63; border-color: #e8b5ce;
  }

  /* Planes, calendario, filtros y estados. */
  body.pf-theme-light .pill-btn { background: #eaf1fa; color: #3a5573; border-color: #bfcee2; }
  body.pf-theme-light .pill-btn.selected { background: #d6f1ed; color: #13675f; border-color: #62bdb2; }
  body.pf-theme-light .equipment-item { background: #f6f9fe; color: var(--pf-ink); border-color: var(--pf-stroke); }
  body.pf-theme-light .equipment-item.checked { background: #dcf3eb; color: #174e42; border-color: #70b8a4; }
  body.pf-theme-light .day-button { background: #f4f7fd; color: #27415f; border-color: #c6d5e8; }
  body.pf-theme-light .day-button.on { background: #ddf5ed; color: #165c48; border-color: #7ccbb2; }
  body.pf-theme-light .schedule-day { background: #f8fafe; }
  body.pf-theme-light .tabs { background: #e6edfa; }
  body.pf-theme-light .tabs button { color: #3c5876; }
  body.pf-theme-light .tabs button.active { background: #d1e0f6; color: #223e61; }
  body.pf-theme-light :is(.progress,.barrow .track,.pf-today-progress) { background: #d8e1f0; }
  body.pf-theme-light .step { background: #ccdaed; color: #1e4260; }
  body.pf-theme-light .step.done { background: #a5eadc; color: #145e52; }
  body.pf-theme-light .series-dot { background: #d9e3f2; color: #233f5a; }
  body.pf-theme-light .series-dot.done { background: #cef0e3; color: #17674e; }
  body.pf-theme-light .warning { background: #fff1d9; color: #87570d; border-color: #eecb8b; }
  body.pf-theme-light .alert { background: #eaf4fc; color: #245371; border-color: #c3d8ea; }
  body.pf-theme-light .alert.error { background: #fff0f2; color: #9b2948; border-color: #e7acb7; }
  body.pf-theme-light .alert.success { background: #e1f7ec; color: #176449; border-color: #a8dac3; }
  body.pf-theme-light .toast { background: #e0f7ed; color: #155a44; border-color: #9bd7bf; }
  body.pf-theme-light .toast.error { background: #ffedf0; color: #9d3150; border-color: #e5aab9; }
  body.pf-theme-light .modal { background: #fff; color: var(--pf-ink); border-color: var(--pf-stroke); }
  body.pf-theme-light .login-card,
  body.pf-theme-light .install-page .install-wrap { background: #fff; color: var(--pf-ink); border-color: var(--pf-stroke); }
  body.pf-theme-light .install-form label { color: #3c5876; }

  /* Inicio y tarjetas de accesos: antes quedaban en azul oscuro. */
  body.pf-theme-light :is(.pf-profile-banner,.pf-home-profile,.pf-today,.hero,.live-hero,.pf-admin-hero,.report-header) {
    background: linear-gradient(128deg,#e7f1ff 0%,#f1ebff 100%);
    color: var(--pf-ink);
    border-color: #c1d2ea;
    box-shadow: 0 10px 24px var(--pf-shadow);
  }
  body.pf-theme-light :is(.pf-profile-banner small,.pf-home-profile small,.pf-today p,.pf-today small,.hero p,.pf-admin-hero p,.report-header p) {
    color: #49627e;
  }
  body.pf-theme-light .pf-today-title { color: #243a61; }
  body.pf-theme-light .pf-open-profile { color: #6451ac; }
  body.pf-theme-light .pf-profile-avatar { background: #e9e3ff; border-color: #bda5f5; }
  body.pf-theme-light .pf-shortcuts button { background: #f2f6ff; color: #28425f; border-color: #c1d1e8; }
  body.pf-theme-light .pf-shortcuts button:hover { background: #e8efff; }
  body.pf-theme-light .pf-shortcuts small { color: #526b87; }
  body.pf-theme-light .pf-shortcuts-neon .pf-shortcut-tile,
  body.pf-theme-light .pf-shortcuts-neon .pf-shortcut-chart,
  body.pf-theme-light .pf-shortcuts-neon .pf-shortcut-admin,
  body.pf-theme-light .pf-shortcuts-neon .pf-shortcut-danger {
    background: linear-gradient(150deg,#f6f2ff,#e8f3ff);
    border-color: #c6b8ea;
    color: #243d5d;
    box-shadow: 0 8px 20px var(--pf-shadow);
  }
  body.pf-theme-light .pf-shortcuts-neon .pf-shortcut-tile span { color: #243d5d; }
  body.pf-theme-light .pf-shortcuts-neon .pf-shortcut-chart,
  body.pf-theme-light .pf-shortcuts-neon .pf-shortcut-admin { background: linear-gradient(150deg,#eaf7fb,#e9edff); border-color: #a5d5e6; }
  body.pf-theme-light .pf-shortcuts-neon .pf-shortcut-danger { background: linear-gradient(150deg,#fff1f7,#f6f0fc); border-color: #e2b8d3; }
  body.pf-theme-light .pf-quick-link { background: #f5f8ff; color: #253e5d; border-color: #c2d2e8; }
  body.pf-theme-light .pf-quick-link.is-logout { background: #fdf1f8; color: #773658; border-color: #e5bbd3; }
  body.pf-theme-light .pf-watch-log-card,
  body.pf-theme-light .pf-manual-home-cta,
  body.pf-theme-light .pf-home-manual { background: linear-gradient(115deg,#eef5ff,#f4eeff); color: var(--pf-ink); border-color: #c5d5ed; }
  body.pf-theme-light .pf-home-manual .btn { background: #e1ebfb; color: #234262; border-color: #b9cce7; }

  /* Pantalla del entrenador: estados, cronómetro, descansos y próxima serie. */
  body.pf-theme-light .pf-no-live,
  body.pf-theme-light .pf-workout-console,
  body.pf-theme-light .pf-is-changing .pf-workout-console {
    background: linear-gradient(135deg,#fff,#eff4fe);
    border-color: #c4d3e9;
    color: var(--pf-ink);
  }
  body.pf-theme-light .pf-no-live p,
  body.pf-theme-light .pf-live-screen-head small,
  body.pf-theme-light .pf-workout-progress .row,
  body.pf-theme-light .pf-technique,
  body.pf-theme-light .pf-live-metadata small { color: #526a87; }
  body.pf-theme-light .pf-live-screen-head .pf-back { color: #27405c; }
  body.pf-theme-light .pf-live-photo,
  body.pf-theme-light .live-hero>img { background: #eff4fc; border-color: #c7d6e9; }
  body.pf-theme-light .pf-live-metadata span,
  body.pf-theme-light .pf-live-series span,
  body.pf-theme-light .pf-defaults span { background: #eef3fc; color: #2b4567; border-color: #bdcfe7; }
  body.pf-theme-light .pf-defaults strong { color: #213f60; }
  body.pf-theme-light .pf-live-series .current { background: #e5d9fa; color: #5f2ca7; border-color: #9e79d0; }
  body.pf-theme-light .pf-live-series .done { background: #d3f4e7; color: #11654c; border-color: #6bc1a5; }
  body.pf-theme-light .pf-live-phase { color: #352b6f; }
  body.pf-theme-light .pf-rest-mode .pf-live-phase,
  body.pf-theme-light .pf-is-changing .pf-live-phase { color: #0f7669; }
  body.pf-theme-light .pf-live-modern .pf-live-ring,
  body.pf-theme-light .pf-live-ring { background: conic-gradient(from -90deg,var(--pf-accent) 0 var(--pf-progress),#ced8e9 var(--pf-progress) 100%); box-shadow: 0 0 0 7px #e5ebf8,0 0 22px #7a5cbe22; }
  body.pf-theme-light .pf-live-modern .pf-live-ring:before,
  body.pf-theme-light .pf-live-ring:before { background: radial-gradient(circle at 50% 30%,#fff,#eaf0fb 80%); border-color: #c4d1e7; }
  body.pf-theme-light .pf-live-modern .pf-ring-label,
  body.pf-theme-light .pf-ring-label { color: #4b477b; }
  body.pf-theme-light .pf-live-modern .pf-ring-number,
  body.pf-theme-light .pf-ring-number { color: #1f3156; }
  body.pf-theme-light .pf-live-modern .pf-ring-caption,
  body.pf-theme-light .pf-ring-caption { color: #506684; }
  body.pf-theme-light .pf-live-modern .pf-live-ring.is-rest.pf-can-fast-start .pf-ring-caption,
  body.pf-theme-light button.pf-live-ring.is-actionable .pf-ring-caption { color: #126c63; }
  body.pf-theme-light .pf-workout-progress .progress { background: #d5e0ee; }
  body.pf-theme-light .pf-primary-actions :is(.pf-soft-btn,.pf-edit-btn) { background: #e9f0fd; color: #294463; border-color: #bfcde2; }
  body.pf-theme-light .pf-rest-announcement { background: #def5f2; color: #17574e; border-color: #8acac0; }
  body.pf-theme-light .pf-rest-announcement small { color: #3b6d67; }
  body.pf-theme-light .pf-discard { color: #65788e !important; }
  body.pf-theme-light .pf-next-exercise { background: #eff4fd; color: #223d5e; border-color: #bbcde4; }
  body.pf-theme-light .pf-next-exercise :is(strong,p,span,small) { color: #314e70; }
  body.pf-theme-light .pf-next-exercise img { background: #e5edfa; }

  /* Biblioteca, máquinas, fotos y administración. */
  body.pf-theme-light .pf-media-card img,
  body.pf-theme-light .pf-media-slot,
  body.pf-theme-light .pf-media-slot-image img,
  body.pf-theme-light .pf-machine-image,
  body.pf-theme-light .pf-machine-modal-photo,
  body.pf-theme-light .pf-machine-modal-empty,
  body.pf-theme-light .pf-equipment-thumb,
  body.pf-theme-light .pf-custom-exercise-card>img {
    background: #eef3fc;
    border-color: #c7d5e6;
  }
  body.pf-theme-light :is(.pf-media-card-content small,.pf-media-slot-meta small,.pf-system-meta small) { color: #526a85; }
  body.pf-theme-light .pf-admin-tile,
  body.pf-theme-light .pf-admin-user,
  body.pf-theme-light .pf-reg-option {
    background: #f5f8ff;
    border-color: #c8d6e9;
    color: var(--pf-ink);
  }
  body.pf-theme-light .pf-admin-tile small,
  body.pf-theme-light .pf-reg-option small { color: #596d86; }
  body.pf-theme-light .pf-admin-tile-icon { background: #eee4ff; border-color: #ceb5fa; color: #7146b8; }
  body.pf-theme-light .pf-admin-arrow { color: #7953c7; }
  body.pf-theme-light .pf-system-demo { background: #f1f5fe; border-color: #c9d7e9; color: var(--pf-ink); }
  body.pf-theme-light .pf-system-demo .pfv-muscle-bar { color: #2b4664; }
  body.pf-theme-light .pf-privacy-panel,
  body.pf-theme-light .pf-privacy-danger { background: #fff2f5; color: #88324a; border-color: #e3afbe; }
  body.pf-theme-light .pf-privacy-danger p { color: #93455a; }
  body.pf-theme-light .pf-approve { background: #dff5e8; color: #176649; border-color: #86cbb0; }

  /* Calendarios de cumplimiento y reportes internos del panel. */
  body.pf-theme-light .heat-day { background: #f2f6fc; color: #2b4562; border-color: #d2deed; }
  body.pf-theme-light .heat-day small { color: #46607e; }
  body.pf-theme-light .heat-day.cumplido { background: #dcf5e9; color: #155f46; border-color: #8fd0b2; }
  body.pf-theme-light .heat-day.incumplido { background: #ffe5eb; color: #9e344b; border-color: #eab1be; }
  body.pf-theme-light .heat-day.justificado { background: #fff2d6; color: #7d5b18; border-color: #e5c984; }
  body.pf-theme-light .heat-day.descanso { background: #edf2f9; color: #475e78; border-color: #d1dce9; }
  body.pf-theme-light .heat-day.pendiente { background: #e1edff; color: #25568b; border-color: #a9caee; }
  body.pf-theme-light .report-ai { background: linear-gradient(135deg,#e8f6fb,#f4efff); border-color: #c4d5eb; color: #2b4766; }
  body.pf-theme-light .chart-label { fill: #5b6e86; }

  /* El reporte tiene selector claro/oscuro propio; ambos deben ser legibles. */
  .pfv-report .pfv-figure-preview { background: var(--pfv-card); color: var(--pfv-text); border-color: var(--pfv-border); }
  .pfv-report .pfv-figure-preview :is(strong,small) { color: var(--pfv-text); }
  .pfv-report .pfv-anatomy-combo { background: var(--pfv-soft); border-color: var(--pfv-border); }
  .pfv-report .pfv-heat-chip { background: var(--pfv-soft); }
  .pfv-report .pfv-figure-option.is-selected strong { color: #fff; }
  .pfv-report.pfv-dark .pfv-figure-preview { background: var(--pfv-soft); color: var(--pfv-text); }
  .pfv-report.pfv-dark .pfv-anatomy-combo { background: var(--pfv-soft); }
}

/* Pirela Fit 1.4.12 · Imágenes con ampliación reversible y selector manual */
.pf-live-photo-trigger{display:block;width:100%;padding:0;position:relative;border:0;border-radius:18px;overflow:hidden;background:transparent;color:inherit;cursor:zoom-in;touch-action:manipulation;}
.pf-live-photo-trigger .pf-live-photo{height:258px;width:100%;object-fit:cover;transition:height .2s ease;}
.pf-live-photo-trigger.pf-image-open{cursor:zoom-out;}
.pf-live-photo-trigger.pf-image-open .pf-live-photo{height:auto;max-height:min(68vh,680px);object-fit:contain;background:var(--panel2);}
/* Indicador de ampliación discreto: solo una lupa (el botón completo sigue siendo pulsable). */
.pf-img-hint{position:absolute;bottom:8px;right:8px;z-index:1;display:block;width:27px;height:27px;box-sizing:border-box;overflow:hidden;font-size:0;line-height:0;padding:0;color:#fff;background:rgba(20,31,51,.47);border:1px solid rgba(255,255,255,.23);border-radius:9px;box-shadow:none;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);pointer-events:none;}
.pf-img-hint::before{content:"";position:absolute;left:6px;top:6px;width:11px;height:11px;border:1.7px solid currentColor;border-radius:50%;box-sizing:border-box;}
.pf-img-hint::after{content:"";position:absolute;left:15px;top:16px;width:7px;height:1.7px;background:currentColor;border-radius:2px;transform:rotate(45deg);transform-origin:top left;}
.pf-live-photo-trigger:focus-visible,.pf-exercise-thumb:focus-visible,.pf-batch-choice:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;}
.exercise-row .pf-exercise-thumb{border:0;background:transparent;padding:0;position:relative;width:85px;display:block;cursor:zoom-in;align-self:center;border-radius:9px;overflow:hidden;}
.exercise-row .pf-exercise-thumb img{width:100%;max-width:100%;height:82px;object-fit:contain;border-radius:9px;display:block;background:var(--panel2);}
.pf-zoom-corner{position:absolute;bottom:2px;right:2px;background:#192c49dc;color:#fff;border-radius:6px;padding:2px 5px;font-size:12px;}
.exercise-row.pf-image-open{grid-template-columns:minmax(0,1fr) auto;}
.exercise-row.pf-image-open .pf-exercise-thumb{grid-column:1/-1;width:100%;cursor:zoom-out;max-height:550px;}
.exercise-row.pf-image-open .pf-exercise-thumb img{width:100%;height:auto;max-height:520px;object-fit:contain;background:var(--panel2);}
.exercise-row.pf-image-open>div:nth-child(2){grid-column:1;min-width:0;}
.exercise-row.pf-image-open>.stack{grid-column:2;grid-row:2;}
.pf-empty-day{padding:12px;border:1px dashed var(--border);border-radius:12px;margin-top:15px;}
.pf-batch-open{margin-top:14px;max-width:100%;white-space:normal;text-align:center;}
.pf-batch-intro{background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:13px 16px;margin-bottom:15px;font-size:13px;line-height:1.55;}
.pf-batch-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:14px;}
.pf-batch-selected{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:12px;min-height:52px;border-radius:12px;border:1px solid var(--border);background:var(--panel2);margin-bottom:14px;font-size:12px;}
.pf-batch-pill{background:var(--panel3);border:1px solid var(--border);border-radius:20px;padding:5px 9px;color:var(--text);font-weight:750;}
.pf-batch-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:min(50vh,530px);overflow-y:auto;overscroll-behavior:contain;padding:3px;}
.pf-batch-card{border:1px solid var(--border);border-radius:13px;background:var(--panel2);position:relative;display:flex;align-items:stretch;min-width:0;}
.pf-batch-card.is-selected{border-color:#9d5af3;box-shadow:inset 0 0 0 1px #9d5af3;background:color-mix(in srgb,var(--panel2),#9754f7 11%);}
.pf-batch-choice{display:flex;gap:10px;align-items:center;flex:1;text-align:left;min-width:0;color:var(--text);background:transparent;padding:12px 34px 12px 10px;border:0;border-radius:12px;}
.pf-batch-choice img{width:85px;height:82px;object-fit:contain;border-radius:9px;background:#fff;flex-shrink:0;}
.pf-batch-check{width:25px;height:25px;display:grid;place-items:center;flex-shrink:0;border-radius:7px;background:var(--panel3);border:1px solid var(--border);color:var(--muted);font-weight:900;}
.pf-batch-card.is-selected .pf-batch-check{background:#8b3ee4;border-color:#8b3ee4;color:white;}
.pf-batch-copy{min-width:0;display:grid;gap:5px;}
.pf-batch-copy strong{font-size:13px;line-height:1.3;overflow-wrap:anywhere;}
.pf-batch-copy small{font-size:11px;color:var(--muted);line-height:1.4;}
.pf-batch-zoom{position:absolute;right:7px;top:9px;min-width:25px!important;min-height:25px!important;padding:2px 5px!important;z-index:1;}
.pf-batch-card.pf-batch-expanded{grid-column:1/-1;}
.pf-batch-card.pf-batch-expanded .pf-batch-choice{flex-wrap:wrap;}
.pf-batch-card.pf-batch-expanded .pf-batch-choice img{order:4;width:100%;height:auto;max-height:410px;object-fit:contain;}
.pf-batch-card.pf-batch-expanded .pf-batch-copy{flex:1;}
.pf-batch-footer{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-top:17px;border-top:1px solid var(--border);padding-top:15px;}
.pf-batch-footer .btn{flex-shrink:0;}
body.pf-theme-light .pf-batch-card{background:#f8fbff;}
body.pf-theme-light .pf-batch-card.is-selected{background:#f1e9ff;}
body.pf-theme-light .pf-batch-intro,body.pf-theme-light .pf-batch-selected{background:#f1f5fc;}
@media(max-width:760px){.pf-batch-list{grid-template-columns:1fr;max-height:45vh}.pf-batch-tools{grid-template-columns:1fr;gap:8px}.pf-batch-footer{flex-wrap:wrap}.pf-batch-footer .btn{width:100%}.pf-batch-choice img{width:70px;height:68px}.pf-live-photo-trigger .pf-live-photo{height:210px;}}

/* Pirela Fit 1.4.13 · Cardio por duración, sin series/repeticiones */
.exercise-controls.pf-cardio-controls{gap:10px;align-items:flex-end}
.exercise-controls.pf-cardio-controls label{width:auto;max-width:145px;min-width:98px;flex:1 1 98px;color:var(--muted)}
.exercise-controls.pf-cardio-controls input{width:100%;min-width:0}
.pf-cardio-running{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 16px 13px;margin:0 auto 12px;text-align:center;color:var(--text)}
.pf-cardio-running>span{font-size:12px;font-weight:750;color:var(--muted)}
.pf-cardio-running>strong{font-family:Manrope,system-ui,sans-serif;font-size:clamp(26px,5vw,38px);letter-spacing:-.04em;color:var(--text);font-variant-numeric:tabular-nums}
.pf-cardio-running>small{font-size:11px;line-height:1.4;max-width:310px;color:var(--muted)}
.pf-cardio-logs{margin-bottom:12px;padding:0 10px;border:1px solid var(--border);border-radius:12px;background:var(--panel2);font-size:12px}
.pf-cardio-logs .feature-line{border-color:var(--border);flex-wrap:wrap}
.pf-cardio-logs strong{color:var(--text)}
.pf-live-modern .pf-live-ring:not(.is-actionable) .pf-ring-caption{max-width:220px}
@media(max-width:440px){.exercise-controls.pf-cardio-controls{grid-column:1/-1}.pf-live-metadata span{padding:10px 5px}.pf-live-metadata small{font-size:10px}.pf-live-metadata strong{font-size:13px}}

/* Pirela Fit 1.4.16 — informes PC: columnas sin zonas vacías y escala de peso coherente. */
@media screen and (min-width:851px){
  /* Antes: el mapa muscular alto estiraba las dos tarjetas pequeñas dejando enormes huecos. */
  .pfv-row-thirds{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .pfv-row-thirds>.pfv-muscles{grid-column:1/-1}
  .pfv-muscles .pfv-muscle-layout{grid-template-columns:minmax(0,1.45fr) minmax(295px,.85fr)!important;gap:clamp(16px,2.2vw,28px)!important;align-items:start}
  .pfv-muscles .pfv-anatomy{max-width:760px}
  .pfv-muscles .pfv-anatomy-figure .pfv-custom-photo-frame{height:220px}
  .pfv-muscles .pfv-muscle-bars{width:100%;min-width:0;align-self:start}
  .pfv-muscles .pfv-muscle-bar-detailed{grid-template-columns:minmax(86px,1fr) minmax(55px,1.15fr) minmax(98px,.7fr)!important;gap:10px!important;margin:12px 0!important;font-size:13px!important}
  .pfv-muscles .pfv-muscle-bar-detailed b{font-size:14px!important}
  .pfv-muscles .pfv-muscle-bar-detailed b small{font-size:11px!important}
}
@media screen and (min-width:851px) and (max-width:1100px){
  .pfv-muscles .pfv-muscle-layout{grid-template-columns:1fr!important}
  .pfv-muscles .pfv-anatomy{max-width:650px;margin:0 auto}
}
@media screen and (max-width:850px){
  .pfv-row-thirds{grid-template-columns:1fr;align-items:start}
  .pfv-row-thirds>.pfv-muscles{grid-column:auto}
}
.pfv-weight-layout>div{min-width:0}
.pfv-weight-key{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:5px 16px;margin:1px 0 6px 58px;color:var(--pfv-muted);font-size:10px}
.pfv-weight-key span{display:inline-flex;align-items:center;gap:6px}
.pfv-weight-key i{display:inline-block;flex:none;width:19px;height:0;border-top:3px solid #6c45dc}
.pfv-weight-key .pfv-key-profile{border-color:#c58a37;border-top-style:dashed}
.pfv-weight-ref{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:3px 10px;padding-bottom:7px;border-bottom:1px solid var(--pfv-border);font-size:11px;color:var(--pfv-muted)}
.pfv-weight-ref b{font-size:15px;color:var(--pfv-text)}
.pfv-weight-stat{min-width:0;gap:8px}
.pfv-weight-stat p,.pfv-weight-stat small{overflow-wrap:anywhere}
.pfv-dark .pfv-weight-profile-label{fill:#f3c779}
.pfv-dark .pfv-weight-profile-line{stroke:#f3c779}
@media screen and (max-width:560px){
  .pfv-weight-key{margin-left:16px}
  .pfv-muscles .pfv-muscle-bar-detailed{grid-template-columns:minmax(64px,1fr) minmax(34px,.9fr) minmax(77px,.8fr)!important;gap:6px!important;font-size:11px!important}
  .pfv-muscles .pfv-muscle-bar-detailed b{font-size:12px!important}
  .pfv-muscles .pfv-muscle-bar-detailed b small{font-size:9px!important}
}
@media print{
  /* Preserve la lectura del reporte impreso, incluso con fotos y mapa anatómico. */
  .pfv-row-thirds{grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:start!important}
  .pfv-row-thirds>.pfv-muscles{grid-column:1/-1!important}
  .pfv-muscles .pfv-muscle-layout{grid-template-columns:55% minmax(0,1fr)!important;gap:12px!important}
  .pfv-muscles .pfv-muscle-bar-detailed{grid-template-columns:minmax(65px,1fr) minmax(25px,1fr) minmax(65px,.7fr)!important;gap:5px!important;font-size:9px!important;margin:5px 0!important}
  .pfv-muscles .pfv-muscle-bar-detailed b{font-size:10px!important}
  .pfv-muscles .pfv-muscle-bar-detailed b small{font-size:8px!important}
  .pfv-weight-layout{grid-template-columns:minmax(0,1fr) 152px!important}
  .pfv-weight-key{font-size:8px!important;margin:0 0 2px 40px!important;gap:7px!important}
  .pfv-weight-ref{font-size:8px!important;padding-bottom:3px!important}
  .pfv-weight-ref b{font-size:10px!important}
}

/* 1.4.17: leyenda de la evolución de peso desde el perfil (punto inicial). */
.pfv-weight-key .pfv-key-profile{border:3px solid #bd8738;background:var(--pfv-card,#fff);width:12px;height:12px;border-radius:50%}
.pfv-weight-key .pfv-key-recorded{border-top:3px solid #6943d3;width:19px;height:0}

/* Pirela Fit MP4: reproductor a demanda. Las miniaturas siguen siendo fotografias. */
.pf-exercise-photo-button{position:relative;display:block;width:100%;border:0;padding:0;background:transparent;cursor:pointer;text-align:inherit;overflow:hidden;border-radius:inherit}
.pf-exercise-photo-button img{display:block;width:100%;height:auto;object-fit:contain}
.pf-exercise-photo-button:focus-visible{outline:3px solid #8da6ff;outline-offset:2px}
.pf-exercise-play{position:absolute;right:8px;bottom:8px;color:#fff;background:#101d36e8;border:1px solid #7282b6;border-radius:999px;padding:6px 11px;font-size:12px;font-weight:750;pointer-events:none}
/* MP4 en iPhone: el marco es panorámico desde el comienzo. La foto cuadrada NO actúa como poster. */
.pf-exercise-video-stage{position:relative;display:block;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:15px;background:#14223a;isolation:isolate}
.pf-exercise-video-stage .pf-exercise-video{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;object-fit:contain;background:transparent;opacity:0;transition:opacity .22s ease}
.pf-exercise-video-stage.is-ready .pf-exercise-video{opacity:1}
.pf-exercise-video-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#d2e2f8;font-weight:650;font-size:13px;background:#182940;pointer-events:none;opacity:1;transition:opacity .18s ease}
.pf-exercise-video-spinner{width:27px;height:27px;border:3px solid #8099bd80;border-top-color:#d2e4ff;border-radius:50%;animation:pf-video-spin .85s linear infinite}
@keyframes pf-video-spin{to{transform:rotate(360deg)}}
.pf-exercise-video-stage.is-ready .pf-exercise-video-loading,.pf-exercise-video-stage.has-error .pf-exercise-video-loading{opacity:0;visibility:hidden}
.pf-exercise-video-error{display:none;position:absolute;inset:0;align-items:center;justify-content:center;gap:5px;flex-direction:column;text-align:center;font-size:12px;padding:10px;color:#d2e2f8}
.pf-exercise-video-error img{max-width:100%;max-height:75%;object-fit:contain}
.pf-exercise-video-stage.has-error .pf-exercise-video{display:none}
.pf-exercise-video-stage.has-error .pf-exercise-video-error{display:flex}
.pf-exercise-video-poster{display:block;width:100%;max-height:min(66vh,580px);height:auto;object-fit:contain;border-radius:15px;background:transparent}
body.pf-theme-light .pf-exercise-video-stage,body.pf-theme-light .pf-exercise-video-loading{background:#eaf0f8;color:#304867}
body.pf-theme-light .pf-exercise-video-spinner{border-color:#9fb3d380;border-top-color:#5675ad}
body.pf-theme-light .pf-exercise-video-error{color:#304867}
@media(max-width:600px){.pf-exercise-video-stage{border-radius:12px}}
@media(prefers-reduced-motion:reduce){.pf-exercise-video-loading,.pf-exercise-video-stage .pf-exercise-video{transition:none}.pf-exercise-video-spinner{animation-duration:1.5s}}
.pf-exercise-video-upload{margin-top:24px;padding-top:18px;border-top:1px solid var(--border, #34445b)}
.pf-exercise-video-upload h3{margin:0 0 8px}
.pf-media-slot-meta .row{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}

/* 1.4.25: Filtro visual por día en el editor de rutinas (no cambia el plan). */
.pf-editor-day-filter{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin-top:22px;padding:16px 18px;border:1px solid var(--border,#33445d);border-radius:16px;background:var(--panel,#17263b)}
.pf-editor-day-select{width:min(310px,100%);flex:0 1 310px}
.pf-editor-day-select select{min-height:45px;font-weight:750}
.pf-editor-day-filter-tip{font-size:12px;color:var(--muted,#849ab2);line-height:1.55;flex:1 1 230px;padding-bottom:5px}
.grid.cols-2.pf-editor-single-day{grid-template-columns:minmax(0,1fr);max-width:1000px}
@media(max-width:600px){.pf-editor-day-filter{padding:12px;gap:8px}.pf-editor-day-select{flex:1 1 100%;width:100%}.pf-editor-day-filter-tip{flex:1 1 100%;padding-bottom:0}}

/* Pirela Fit 1.4.27 · Historial completo de fuerza por ejercicio, sesión y serie. */
.pfv-row-bottom.pfv-strength-history-row{grid-template-columns:minmax(0,1fr)}
.pfv-lift-exercises{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:12px;margin-top:12px}
.pfv-lift-card{min-width:0;border:1px solid var(--pfv-border,#d7e0ee);border-radius:14px;background:var(--pfv-card,#fff);padding:13px;overflow:hidden}
.pfv-lift-card-heading{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--pfv-border,#d7e0ee);padding-bottom:10px;margin-bottom:10px}
.pfv-lift-card-heading h3{font-size:15px;line-height:1.3;margin:0!important;color:var(--pfv-text,#1b2b45)}
.pfv-lift-card-heading>span{font-size:11px;color:var(--pfv-muted,#5e708b);white-space:nowrap}
.pfv-lift-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pfv-lift-stats>div{background:var(--pfv-soft,#edf3fc);border-radius:10px;padding:8px 10px;min-width:0;display:flex;flex-direction:column;gap:4px}
.pfv-lift-stats small{color:var(--pfv-muted,#64748b);font-size:10px;line-height:1.25}
.pfv-lift-stats b,.pfv-lift-stats strong{color:var(--pfv-text,#25354e);font-size:16px;line-height:1.3}
.pfv-lift-up{color:#09815e!important}.pfv-lift-down{color:#c13a64!important}.pfv-lift-equal{color:var(--pfv-muted,#5f6f89)!important}.pfv-lift-first{color:#6e4cce!important}
.pfv-lift-plot{margin:10px 0 9px;background:var(--pfv-soft,#f2f6fc);border-radius:10px;padding:4px}
.pfv-lift-chart{display:block;width:100%;height:auto;max-height:164px;overflow:visible}
.pfv-lift-log{list-style:none;margin:8px 0 0!important;padding:0!important;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr));gap:7px}
.pfv-lift-entry{padding:9px 10px;border:1px solid var(--pfv-border,#d6e0ed);border-left:3px solid #9581e5;border-radius:9px;background:var(--pfv-card,#fff);min-width:0}
.pfv-lift-entry time{font-size:10px;color:var(--pfv-muted,#6b7c96);display:block;margin-bottom:4px}
.pfv-lift-entry-main{display:flex;gap:7px;align-items:baseline;justify-content:space-between;flex-wrap:wrap}
.pfv-lift-entry-main b{font-size:16px;color:var(--pfv-text,#26354c)}
.pfv-lift-trend{font-size:11px;font-weight:800;white-space:nowrap}
.pfv-lift-entry small{display:block;margin-top:5px;font-size:10px;color:var(--pfv-muted,#63758c);line-height:1.45;overflow-wrap:anywhere}
.pfv-lift-no-weight{font-size:12px;color:var(--pfv-muted,#63758c);line-height:1.5;margin:8px 0 0!important}
.pfv-dark .pfv-lift-up{color:#71d9ae!important}.pfv-dark .pfv-lift-down{color:#ff9aab!important}.pfv-dark .pfv-lift-first{color:#c2a7ff!important}
@media(max-width:540px){
 .pfv-lift-exercises{grid-template-columns:1fr;gap:9px}
 .pfv-lift-card{padding:11px}
 .pfv-lift-card-heading h3{font-size:14px}
 .pfv-lift-log{grid-template-columns:1fr 1fr;gap:5px}
 .pfv-lift-entry{padding:7px}
 .pfv-lift-entry-main b{font-size:14px}
 .pfv-lift-trend{font-size:10px}
}
@media(max-width:360px){.pfv-lift-log{grid-template-columns:1fr}}
@media print{
 .pfv-row-bottom.pfv-strength-history-row{grid-template-columns:1fr!important;break-inside:auto!important;page-break-inside:auto!important}
 .pfv-strength-evolution,.pfv-strength-history-row,.pfv-lift-exercises{break-inside:auto!important;page-break-inside:auto!important;overflow:visible!important}
 .pfv-lift-exercises{grid-template-columns:1fr 1fr!important;gap:7px!important}
 .pfv-lift-card{padding:7px!important;border:1px solid #cdd9ea!important;break-inside:auto!important;page-break-inside:auto!important}
 .pfv-lift-card-heading{padding-bottom:4px!important;margin-bottom:5px!important}
 .pfv-lift-card-heading h3{font-size:10px!important;color:#1e2e4b!important}
 .pfv-lift-card-heading span,.pfv-lift-stats small,.pfv-lift-entry small{font-size:7px!important}
 .pfv-lift-stats{gap:4px!important}.pfv-lift-stats>div{padding:5px!important;background:#eff3fb!important}
 .pfv-lift-stats b,.pfv-lift-stats strong{font-size:10px!important}
 .pfv-lift-plot{margin:3px 0!important;padding:0!important;background:#f8faff!important}
 .pfv-lift-chart{max-height:80px!important}
 .pfv-lift-log{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3px!important}
 .pfv-lift-entry{padding:4px 6px!important;break-inside:avoid}
 .pfv-lift-entry-main b{font-size:10px!important}.pfv-lift-trend{font-size:8px!important}
 .pfv-lift-up{color:#09815e!important}.pfv-lift-down{color:#b81e4a!important}
}

/* Pirela Fit 1.4.29 — Hoja compacta para PDF. No modifica la pantalla del informe. */
#pfv-compact-print-root{position:fixed;top:0;left:-20000px;width:1500px;visibility:hidden;pointer-events:none;background:#fff;color:#1c2e49;font:12px/1.32 Manrope,'DM Sans',Arial,sans-serif}
.pfcp-page{width:1500px;position:relative;background:#fff;color:#1c2e49;padding:4px;font:12px/1.32 Manrope,'DM Sans',Arial,sans-serif;transform-origin:0 0;box-sizing:border-box}
.pfcp-page *{box-sizing:border-box}.pfcp-page b,.pfcp-page strong{color:#1b2a47}.pfcp-page p{margin:0 0 4px;line-height:1.34}.pfcp-page h3{font:bold 14px/1.2 Manrope,Arial,sans-serif;color:#233451;margin:0 0 7px;padding:0 0 5px;border-bottom:1px solid #d9e1ed}
.pfcp-header{background:linear-gradient(100deg,#17294c,#40326d);color:#fff;border-radius:10px;padding:12px 17px;display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:65px}
.pfcp-header b,.pfcp-header strong{color:#fff}.pfcp-header .pfcp-brand{display:flex;align-items:center;gap:12px}.pfcp-header .pfcp-brand b{font-size:19px;letter-spacing:.03em}.pfcp-header .pfcp-brand small{font-size:11px;font-weight:550;opacity:.85}.pfcp-header .pfcp-brand p{font-size:12px;color:#e4eaff;margin:2px 0 0}.pfcp-brand-icon{display:grid;place-items:center;background:#eeeaff;border-radius:8px;color:#403273;font-weight:900;font-size:19px;width:40px;height:40px}.pfcp-period{text-align:right;white-space:nowrap;display:flex;flex-direction:column;gap:3px}.pfcp-period strong{font-size:13px}.pfcp-period span{color:#dae2f6;font-size:11px}
.pfcp-metrics{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin:7px 0}.pfcp-metric{border:1px solid #d8e2f2;background:#f2f6fc;border-radius:7px;min-width:0;padding:6px 8px;display:flex;flex-direction:column;gap:2px}.pfcp-metric span{font-size:10px;color:#60708b}.pfcp-metric b{font-size:15px;line-height:1.1;white-space:nowrap}.pfcp-metric small{font-size:9px;color:#62728c}
.pfcp-columns{display:grid;grid-template-columns:28% 28% minmax(0,44%);gap:7px;align-items:start}.pfcp-col{display:grid;align-content:start;gap:7px;min-width:0}.pfcp-panel{border:1px solid #d5deed;border-radius:9px;padding:9px 11px;background:#fff;min-width:0;break-inside:avoid}.pfcp-panel:nth-child(even){background:#fbfcff}
.pfcp-weight-readings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.pfcp-weight-readings .pfcp-metric{padding:5px;min-width:0}.pfcp-weight-readings .pfcp-metric b{font-size:13px}.pfcp-weight-readings .pfcp-metric span{font-size:9px}.pfcp-spark{display:block;width:100%;height:47px;max-width:100%;margin:4px 0}.pfcp-mini-heading{font-size:10px;font-weight:800;color:#344763;margin:6px 0 4px}.pfcp-datums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.pfcp-datum{display:flex;justify-content:space-between;gap:4px;padding:3px 5px;border:1px solid #e2e8f3;background:#f8faff;border-radius:4px;font-size:10px}.pfcp-datum b{white-space:nowrap}.pfcp-datum time{color:#516581}
.pfcp-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.pfcp-rows>div{display:flex;flex-wrap:wrap;gap:2px 6px;align-items:baseline;padding:4px 5px;border-radius:4px;background:#f2f6fd;font-size:10px}.pfcp-rows span{color:#526582;flex:1}.pfcp-rows b{font-size:10px;white-space:nowrap}.pfcp-rows em{font-style:normal;color:#a44f6a;font-size:9px}
.pfcp-days{display:grid;grid-template-columns:repeat(14,1fr);gap:3px}.pfcp-day{text-align:center;background:#e9edf4;border-radius:3px;padding:4px 0;font-size:10px;color:#61738b}.pfcp-day.cumplido{background:#a8e5c7;color:#215b43}.pfcp-day.incumplido{background:#f4bac7;color:#963451}.pfcp-day.justificado{background:#f5e2a5;color:#6d5728}.pfcp-day.pendiente{background:#c6dbfb;color:#235599}.pfcp-day.sin_plan{opacity:.65}.pfcp-footnote{font-size:9px;color:#65748e;margin:5px 0 0!important}
.pfcp-calorie-total{color:#4f5f7e}.pfcp-calorie-total b{font-size:20px}.pfcp-calorie-bar{height:12px;border-radius:15px;background:#42bd9d;margin:7px 0;overflow:hidden}.pfcp-calorie-bar i{display:block;height:100%;background:#7956d7}.pfcp-flexline{display:flex;flex-wrap:wrap;gap:7px 12px;font-size:10px;justify-content:space-between}
.pfcp-body-image{display:block;border-radius:7px;border:1px solid #e1e7f1;background:white;width:100%;height:auto;padding:4px!important}.pfcp-body-image .pfv-anatomy{display:flex!important;width:100%!important;max-width:none!important;gap:8px!important;justify-content:center!important;align-items:center!important}.pfcp-body-image .pfv-anatomy-figure{width:49%!important;max-width:50%!important;min-width:0!important}.pfcp-body-image .pfv-anatomy-figure svg,.pfcp-body-image .pfv-anatomy-upload,.pfcp-body-image .pfv-custom-photo-frame{display:block!important;width:100%!important;max-width:100%!important;max-height:135px!important;height:135px!important;object-fit:contain!important}.pfcp-body-image .pfv-anatomy-figure>span{font-size:9px!important}.pfcp-body-image .pfv-heat-mini{display:none!important}.pfcp-body-image .pfv-anatomy-combo{padding:0!important;border:0!important;min-height:0!important}.pfcp-muscle-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;margin-top:6px}.pfcp-muscle{display:grid;grid-template-columns:minmax(0,1fr) 55px 54px;align-items:center;gap:5px;font-size:10px;min-width:0}.pfcp-muscle span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pfcp-muscle>i{display:block;height:6px;border-radius:6px;background:#e6eafa;overflow:hidden}.pfcp-muscle>i>b{display:block;height:100%;border-radius:6px;background:#765ad8}.pfcp-muscle strong{text-align:right;font-size:9px;white-space:nowrap}
.pfcp-analysis p{font-size:10px;line-height:1.36;margin:0 0 7px;white-space:pre-wrap}.pfcp-analysis p:last-child{margin:0}
.pfcp-exercise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.pfcp-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.pfcp-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.pfcp-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.pfcp-exercise{border:1px solid #dce4f0;border-radius:6px;padding:6px 7px;background:#f9fbff;min-width:0;break-inside:avoid}.pfcp-exercise-head{display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap;align-items:baseline;border-bottom:1px solid #e0e6f1;padding-bottom:3px}.pfcp-exercise-head>b{font-size:11px;color:#23354f}.pfcp-exercise-head>span{font-size:9px;color:#5e718c;white-space:nowrap}.pfcp-exercise-trend{display:flex;gap:5px;align-items:center}.pfcp-exercise-trend .pfcp-spark{width:50%;height:26px;flex:0 0 50%;margin:1px 0}.pfcp-exercise-trend small{font-size:9px;color:#526686}.pfcp-sessions{display:grid;gap:2px}.pfcp-session{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;border-top:1px dotted #dfe5f0;padding:2px 0;font-size:9px}.pfcp-session>span{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.pfcp-session time{color:#526686}.pfcp-session b{font-size:10px}.pfcp-session em{font-style:normal;font-weight:750}.pfcp-session small{font-size:8.5px;color:#596c88}.pfcp-up{color:#138765}.pfcp-down{color:#b7395c}.pfcp-steady,.pfcp-begin{color:#7663b1}.pfcp-muted{color:#687994;font-size:10px}
.pfcp-footer{padding:8px 10px 0;display:flex;gap:15px;justify-content:space-between;align-items:center;font-size:9px;color:#5f6e85}.pfcp-footer strong{white-space:nowrap}
@page{size:A3 landscape;margin:6mm}
@media print{
 body.pfcp-print-active{background:white!important;margin:0!important;padding:0!important;min-width:0!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
 body.pfcp-print-active:before{display:none!important}
 body.pfcp-print-active #app{display:none!important}
 body.pfcp-print-active #pfv-compact-print-root{display:block!important;visibility:visible!important;position:relative!important;left:0!important;top:0!important;pointer-events:auto!important;overflow:visible!important;margin:0!important;padding:0!important;border:0!important;width:1500px!important;max-width:none!important;background:#fff!important}
 body.pfcp-print-active #pfv-compact-print-page{width:1500px!important;max-width:none!important;overflow:visible!important;break-inside:avoid!important;page-break-inside:avoid!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
 body.pfcp-print-active #pfv-compact-print-root *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
}

/* 1.4.32 · Registro de pesos olvidados, móvil y escritorio */
.pf-weight-capture{max-height:min(62vh,590px);overflow:auto;overscroll-behavior:contain;padding-right:5px}
.pf-weight-group{border:1px solid var(--border,#cad7e8);border-radius:16px;padding:13px;margin-bottom:12px;background:var(--panel,#fff)}
.pf-weight-group h3{font-size:1rem;margin:0 0 4px}.pf-weight-group p{margin:0 0 12px}
.pf-weight-set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:10px}
.pf-weight-set{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:600;color:var(--text,#25344c)}
.pf-weight-set input{min-width:0;width:100%;border:1px solid var(--border,#b5c9e5);background:var(--input-bg,#fff);color:var(--text,#25344c);border-radius:12px;padding:11px;font-size:1rem}
.pf-weight-set-missing input{border-color:#e9ab50}.pf-weight-set-missing span{color:#b87b19}
@media(max-width:600px){.pf-weight-capture{max-height:55vh}.pf-weight-set-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-weight-group{padding:11px}}

.pf-weight-bulk{border:1px solid var(--border,#cbd5e1);padding:12px;border-radius:14px;display:flex;align-items:end;flex-wrap:wrap;gap:10px}
.pf-weight-bulk .field{flex:1 1 210px;margin:0}.pf-weight-prior{border-top:1px solid var(--border,#cad7e8);padding-top:12px;margin-top:10px}
.pf-weight-prior summary{cursor:pointer;font-weight:700;margin-bottom:12px}

/* Registro de un único peso por ejercicio · 1.4.33 */
.pf-exercise-weight-group{padding:15px 17px}
.pf-exercise-weight-label{display:flex;flex-direction:column;gap:7px;font-weight:750;color:var(--text,#25344c)}
.pf-exercise-weight-label span{font-size:.88rem}
.pf-exercise-weight-label input{width:100%;max-width:330px;min-height:48px;padding:10px 12px;font-size:1.1rem;border:1px solid var(--border,#b5c9e5);border-radius:12px;background:var(--input-bg,#fff);color:var(--text,#25344c)}
.pf-exercise-weight-label input:focus{outline:2px solid #9063df;outline-offset:1px}

/* Pirela Fit 1.4.34 — Texto visible al registrar un peso en Safari/iPhone.
   El tema oscuro usa --text blanco; este campo tiene fondo blanco.
   Alcance limitado a la entrada de peso por ejercicio. */
.pf-exercise-weight-label input[type="number"]{
  background:#ffffff !important;
  color:#1b2d47 !important;
  -webkit-text-fill-color:#1b2d47 !important;
  caret-color:#1b2d47 !important;
  color-scheme:light;
  opacity:1;
}
.pf-exercise-weight-label input[type="number"]::placeholder{
  color:#71839b !important;
  -webkit-text-fill-color:#71839b !important;
  opacity:1;
}

/* Pirela Fit 1.4.35 · Nutrición independiente (sin modificaciones a informes fitness) */
.pf-nutri-page{display:grid;gap:18px;min-width:0}
.pf-nutri-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.pf-nutri-head h2{margin:0 0 7px}.pf-nutri-head p{margin:0;max-width:660px}
.pf-nutri-head-actions,.pf-nutri-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pf-nutri-date{margin:0;min-width:166px}
.pf-nutri-date input{width:100%;color:inherit;max-width:220px}
.pf-nutri-summary{display:grid;grid-template-columns:1.2fr 1fr;gap:15px}
.pf-nutri-main{display:flex;flex-direction:column;justify-content:center;gap:8px;min-width:0;padding:25px;border-radius:20px;background:var(--panel,rgba(255,255,255,.07));border:1px solid var(--line,rgba(140,160,210,.2))}
.pf-nutri-main strong{font-size:clamp(28px,4vw,44px);line-height:1.15;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.pf-nutri-main strong small{font-size:16px;letter-spacing:0;font-weight:500}
.pf-nutri-remaining strong{color:#40c996}.pf-nutri-remaining strong.pf-nutri-over{color:#f5787b}
.pf-nutri-track{height:10px;border-radius:999px;background:rgba(120,140,170,.25);overflow:hidden;margin-top:6px}
.pf-nutri-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2fb786,#72d4a2)}
.pf-nutri-actions .btn{min-height:47px}
.pf-nutri-meal{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line,rgba(140,160,210,.2))}
.pf-nutri-meal:last-child{border-bottom:0}.pf-nutri-meal h3{font-size:16px;margin:8px 0 6px}.pf-nutri-meal p{margin:0 0 5px;max-width:650px}
.pf-nutri-meal-tools{display:flex;flex-direction:column;align-items:flex-end;gap:11px;flex-shrink:0}
.pf-nutri-meal-tools b{font-size:18px;font-variant-numeric:tabular-nums}.pf-nutri-meal-tools .row{gap:6px}
.pf-nutri-page .panel{min-width:0}
@media(max-width:720px){.pf-nutri-summary{grid-template-columns:1fr 1fr;gap:9px}.pf-nutri-main{padding:15px;border-radius:14px}.pf-nutri-main strong{font-size:clamp(24px,6vw,34px)}.pf-nutri-main strong small{font-size:12px}.pf-nutri-head-actions{width:100%}.pf-nutri-date{flex:1}.pf-nutri-actions .btn{flex:1;white-space:normal}.pf-nutri-meal{align-items:flex-start;flex-direction:column}.pf-nutri-meal-tools{align-items:flex-start;width:100%}}

/* Pirela Fit 1.4.36 — biblioteca privada de alimentos y comidas pendientes */
.pf-nutri-library .panel-title{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.pf-nutri-library .panel-title p{margin:7px 0 0}
.pf-nutri-saved-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:12px;margin-top:14px}
.pf-nutri-saved{padding:15px;border:1px solid var(--line,rgba(140,160,210,.2));border-radius:15px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;min-width:0}
.pf-nutri-saved h3{margin:0 0 6px;font-size:16px}.pf-nutri-saved p{margin:0;overflow-wrap:anywhere}
.pf-nutri-saved-buttons{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pf-nutri-saved-buttons .btn{min-height:38px}
.pf-nutri-pending-alert{border-left:4px solid #dca348}
.pf-nutri-unknown{font-size:13px!important;color:#b77a13;max-width:145px;text-align:right}
.pf-nutri-meal-tools .row{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:720px){.pf-nutri-saved-grid{grid-template-columns:1fr}.pf-nutri-saved-buttons .btn{flex:1 1 auto}.pf-nutri-meal-tools .row{justify-content:flex-start}.pf-nutri-unknown{text-align:left;max-width:none}}

/* 1.4.37 · Biblioteca contraíble, búsqueda y filtro por momento de consumo */
.pf-nutri-library-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.pf-nutri-library-toggle{display:flex;align-items:center;text-align:left;gap:14px;flex:1;min-width:0;padding:3px 0;border:0;background:none;color:inherit;cursor:pointer;font:inherit}
.pf-nutri-library-toggle:focus-visible{outline:3px solid #8b7de3;outline-offset:4px;border-radius:6px}
.pf-nutri-library-title{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:2px;min-width:0}
.pf-nutri-library-title strong{font-size:clamp(19px,2.2vw,27px);font-weight:800;line-height:1.3}
.pf-nutri-library-title small{font-size:13px;flex-basis:100%;font-weight:400;opacity:.75}
.pf-nutri-library-total{font-size:12px;font-weight:700;border-radius:999px;background:rgba(100,130,194,.12);padding:4px 9px;white-space:nowrap}
.pf-nutri-library-chevron{font-size:26px;line-height:1;opacity:.8}
.pf-nutri-library-hint{font-size:13px;font-weight:600;opacity:.75}
.pf-nutri-library-new{flex-shrink:0}
.pf-nutri-library-body{margin-top:18px;border-top:1px solid var(--line,rgba(140,160,210,.2));padding-top:18px}
.pf-nutri-library-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,1fr);gap:12px;align-items:end}
.pf-nutri-library-filters .field{margin:0;min-width:0}
.pf-nutri-library-filters input,.pf-nutri-library-filters select{width:100%}
.pf-nutri-library-count{margin:13px 0 0}
.pf-nutri-library-empty{padding:22px 12px;text-align:center;color:var(--muted,#67778c);border:1px dashed var(--line,rgba(140,160,210,.2));border-radius:12px;margin-top:12px}
.pf-nutri-library-more-wrap{display:flex;justify-content:center;margin-top:16px}
.pf-nutri-library-more-wrap [hidden],.pf-nutri-library-empty[hidden]{display:none!important}
.pf-nutri-category{display:inline-block;font-size:11px;font-weight:750;padding:4px 9px;border-radius:999px;background:rgba(110,129,194,.13);margin-bottom:8px}
@media(max-width:720px){.pf-nutri-library-heading{align-items:stretch;gap:10px;flex-wrap:wrap}.pf-nutri-library-toggle{width:100%;flex:1 1 100%}.pf-nutri-library-new{width:100%}.pf-nutri-library-filters{grid-template-columns:1fr}.pf-nutri-library-hint{font-size:12px}}

/* Pirela Fit 1.4.38 — Comparación visual opcional del ejercicio en Nutrición */
.pf-nutri-exercise-compare{border-top:1px solid var(--line,rgba(140,160,210,.2));margin-top:10px;padding-top:14px;display:grid;gap:8px;min-width:0}
.pf-nutri-exercise-logged{display:block;font-size:13px;color:var(--muted);line-height:1.5}
.pf-nutri-exercise-logged b{color:var(--text);font-weight:800;white-space:nowrap}
.pf-nutri-exercise-balance{display:flex;flex-direction:column;gap:5px}
.pf-nutri-exercise-balance strong{font-size:clamp(23px,2.9vw,34px);color:var(--text);line-height:1.1;font-variant-numeric:tabular-nums}
.pf-nutri-exercise-balance strong.pf-nutri-over{color:#f5787b}
.pf-nutri-exercise-caveat{font-size:11px;line-height:1.45;color:var(--muted)}
.pf-nutri-method{grid-column:1/-1;margin:0;padding:4px 7px 0;font-size:12px;line-height:1.6;color:var(--muted)}
.pf-nutri-method b{color:var(--text)}.pf-nutri-method a{color:var(--cyan);text-underline-offset:3px;overflow-wrap:anywhere}
@media(max-width:720px){.pf-nutri-exercise-logged{font-size:12px}.pf-nutri-exercise-balance strong{font-size:clamp(20px,4.6vw,28px)}.pf-nutri-exercise-caveat{font-size:10px}.pf-nutri-method{font-size:11px}}
@media(max-width:380px){.pf-nutri-summary{grid-template-columns:1fr}.pf-nutri-main{padding:17px}}

/* Nutrición 1.4.39 · aviso de nuevo peso corporal (independiente de reportes). */
.pf-nutri-weight-alert{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0 20px;padding:18px 20px;border:1px solid #8ebad1;border-radius:20px;background:linear-gradient(115deg,rgba(96,170,216,.12),rgba(118,208,176,.07));}
.pf-nutri-weight-message{min-width:0;flex:1}.pf-nutri-weight-message strong{display:block;font-size:1.1rem;margin-bottom:5px}.pf-nutri-weight-message p{margin:0 0 5px;line-height:1.5}.pf-nutri-weight-message small{opacity:.75}
.pf-nutri-weight-button{white-space:normal;flex-shrink:0}
@media(max-width:760px){.pf-nutri-weight-alert{flex-direction:column;align-items:stretch}.pf-nutri-weight-button{width:100%}}


/* Nutrición 1.4.45 — rediseño premium */
.pf-nutri-page{gap:20px}
.pf-nutri-head{padding:24px 26px;border-radius:28px;background:linear-gradient(180deg,rgba(14,20,40,.96),rgba(10,16,34,.92));box-shadow:0 22px 48px rgba(2,8,20,.22)}
.pf-theme-light .pf-nutri-head{background:linear-gradient(180deg,#ffffff,#f7fbff)}
.pf-nutri-head h2{font-size:clamp(36px,4.5vw,58px);line-height:1.05;letter-spacing:-.04em;margin:0 0 10px}
.pf-nutri-head p{max-width:760px;font-size:15px;line-height:1.6}
.pf-nutri-head-actions .btn,.pf-nutri-date input{min-height:54px}
.pf-nutri-premium{position:relative;padding:24px;border-radius:30px;overflow:hidden;background:linear-gradient(180deg,rgba(9,16,33,.97),rgba(11,20,40,.95));border:1px solid rgba(133,169,255,.18);box-shadow:0 30px 80px rgba(4,10,23,.28)}
.pf-theme-light .pf-nutri-premium{background:linear-gradient(180deg,#ffffff,#f7fbff);border-color:rgba(120,156,214,.22);box-shadow:0 20px 48px rgba(130,150,190,.18)}
.pf-nutri-premium::before{content:"";position:absolute;inset:-30% auto auto -10%;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(92,183,255,.18),rgba(92,183,255,0));pointer-events:none}
.pf-nutri-premium::after{content:"";position:absolute;inset:auto -8% -20% auto;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(116,213,164,.14),rgba(116,213,164,0));pointer-events:none}
.pf-nutri-dashboard{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.95fr);gap:18px;z-index:1}
.pf-nutri-calorie-card,.pf-nutri-summary-card,.pf-nutri-macro-board,.pf-nutri-meals-panel,.pf-nutri-library{border-radius:26px}
.pf-nutri-calorie-card,.pf-nutri-summary-card,.pf-nutri-macro-board{background:rgba(255,255,255,.04);border:1px solid rgba(131,157,215,.16);backdrop-filter:blur(12px)}
.pf-theme-light .pf-nutri-calorie-card,.pf-theme-light .pf-nutri-summary-card,.pf-theme-light .pf-nutri-macro-board{background:rgba(255,255,255,.78);border-color:rgba(129,156,214,.18)}
.pf-nutri-calorie-card{padding:18px 20px}
.pf-nutri-calorie-shell{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:center;gap:18px}
.pf-nutri-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#7fd3ff}
.pf-theme-light .pf-nutri-kicker{color:#3d78d2}
.pf-nutri-cal-copy h3{margin:8px 0 8px;font-size:clamp(28px,4vw,42px);line-height:1.05;letter-spacing:-.04em}
.pf-nutri-cal-copy p{margin:0 0 14px;max-width:520px;font-size:14px;line-height:1.6;color:var(--muted)}
.pf-nutri-pill-row{display:flex;flex-wrap:wrap;gap:10px}
.pf-nutri-pill{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;border-radius:999px;background:rgba(129,157,221,.12);border:1px solid rgba(129,157,221,.18);font-size:12px;font-weight:700;color:var(--text)}
.pf-nutri-pill b{font-weight:800}
.pf-nutri-cal-ring{--pf-progress:0;--pf-remaining:0;position:relative;width:min(100%,250px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;margin:auto;background:conic-gradient(from -90deg,#5bc8ff 0 calc(var(--pf-progress)*1%),rgba(255,255,255,.10) calc(var(--pf-progress)*1%) 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 18px 40px rgba(5,15,30,.24)}
.pf-nutri-cal-ring::before{content:"";position:absolute;inset:16px;border-radius:50%;background:radial-gradient(circle at 50% 20%,rgba(94,210,255,.18),rgba(11,20,42,.98) 62%,rgba(8,14,30,.98) 100%);border:1px solid rgba(142,178,236,.14)}
.pf-theme-light .pf-nutri-cal-ring::before{background:radial-gradient(circle at 50% 20%,rgba(120,194,255,.20),rgba(255,255,255,.98) 62%,rgba(246,250,255,.99) 100%)}
.pf-nutri-cal-ring::after{content:"";position:absolute;left:20%;right:20%;bottom:23%;height:28%;border-radius:999px 999px 44% 44%/85% 85% 28% 28%;background:linear-gradient(180deg,rgba(146,213,255,.92),rgba(100,169,255,.66));opacity:.88;filter:drop-shadow(0 0 20px rgba(97,174,255,.28))}
.pf-nutri-cal-ring.is-over{background:conic-gradient(from -90deg,#f28c92 0 calc(var(--pf-progress)*1%),rgba(255,255,255,.10) calc(var(--pf-progress)*1%) 100%)}
.pf-nutri-cal-ring.is-over::after{background:linear-gradient(180deg,rgba(255,191,194,.9),rgba(242,120,126,.72))}
.pf-nutri-cal-core{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:0 28px}
.pf-nutri-ring-caption{font-size:14px;font-weight:700;color:var(--muted)}
.pf-nutri-cal-core strong{font-size:clamp(46px,7vw,68px);line-height:.95;letter-spacing:-.055em;font-variant-numeric:tabular-nums}
.pf-nutri-cal-core small{font-size:15px;font-weight:800;color:var(--muted)}
.pf-nutri-summary-card{padding:18px}
.pf-nutri-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:100%}
.pf-nutri-stat-card{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.06);min-height:132px}
.pf-theme-light .pf-nutri-stat-card{background:linear-gradient(180deg,rgba(242,247,255,.88),rgba(255,255,255,.92));border-color:rgba(135,160,214,.16)}
.pf-nutri-stat-card span{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pf-nutri-stat-card strong{font-size:clamp(24px,3vw,34px);line-height:1.05;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.pf-nutri-stat-card small{font-size:13px;line-height:1.5;color:var(--muted)}
.pf-nutri-stat-soft{background:linear-gradient(180deg,rgba(103,169,255,.12),rgba(95,214,173,.08));border-color:rgba(104,169,255,.16)}
.pf-nutri-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.pf-nutri-section-head h3{margin:6px 0 0;font-size:clamp(22px,2.8vw,32px);letter-spacing:-.03em}
.pf-nutri-macro-board{position:relative;margin-top:18px;padding:18px}
.pf-nutri-macro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pf-nutri-macro-card{display:flex;align-items:center;gap:14px;padding:16px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.06)}
.pf-theme-light .pf-nutri-macro-card{background:linear-gradient(180deg,rgba(244,248,255,.86),rgba(255,255,255,.96));border-color:rgba(135,160,214,.15)}
.pf-nutri-macro-ring{--pf-progress:0;position:relative;flex:0 0 82px;width:82px;height:82px;border-radius:50%;background:conic-gradient(from -90deg,var(--macro-color) 0 calc(var(--pf-progress)*1%),rgba(255,255,255,.10) calc(var(--pf-progress)*1%) 100%)}
.pf-nutri-macro-ring::before{content:"";position:absolute;inset:10px;border-radius:50%;background:rgba(10,18,38,.94);border:1px solid rgba(255,255,255,.06)}
.pf-theme-light .pf-nutri-macro-ring::before{background:#fff}
.pf-nutri-macro-core{position:absolute;inset:0;display:grid;place-items:center;z-index:1;font-size:24px}
.pf-nutri-macro-card.carbs{--macro-color:#61d34f}
.pf-nutri-macro-card.protein{--macro-color:#ff9f55}
.pf-nutri-macro-card.fat{--macro-color:#f2cb4d}
.pf-nutri-macro-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.pf-nutri-macro-copy strong{font-size:clamp(22px,2.7vw,30px);line-height:1;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.pf-nutri-macro-copy strong small{font-size:13px;color:var(--muted);font-weight:600;letter-spacing:0}
.pf-nutri-macro-copy span{font-size:17px;font-weight:800}
.pf-nutri-macro-copy em{font-style:normal;font-size:12px;color:var(--muted)}
.pf-nutri-method{margin-top:18px;padding:0 4px;font-size:12px;line-height:1.7;color:var(--muted)}
.pf-nutri-method b{color:var(--text)}
.pf-nutri-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pf-nutri-actions .btn{min-height:58px;border-radius:18px;font-size:16px;font-weight:800;justify-content:center}
.pf-nutri-meals-panel{padding:18px 22px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.02));border:1px solid rgba(131,157,215,.14)}
.pf-theme-light .pf-nutri-meals-panel{background:linear-gradient(180deg,#ffffff,#f7fbff);border-color:rgba(131,157,215,.14)}
.pf-nutri-meal{padding:18px 0;border-bottom:1px solid rgba(131,157,215,.16)}
.pf-nutri-meal h3{font-size:19px;margin:9px 0 6px}
.pf-nutri-meal-tools b{font-size:20px}
.pf-nutri-library{padding:20px 22px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.02));border:1px solid rgba(131,157,215,.14)}
.pf-theme-light .pf-nutri-library{background:linear-gradient(180deg,#ffffff,#f7fbff)}
.pf-nutri-saved{border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.03));border-color:rgba(131,157,215,.15)}
.pf-theme-light .pf-nutri-saved{background:linear-gradient(180deg,rgba(244,248,255,.84),rgba(255,255,255,.95))}
@media(max-width:980px){.pf-nutri-dashboard{grid-template-columns:1fr}.pf-nutri-calorie-shell{grid-template-columns:1fr}.pf-nutri-cal-copy{text-align:center}.pf-nutri-pill-row{justify-content:center}.pf-nutri-summary-grid{grid-template-columns:1fr 1fr}.pf-nutri-section-head{align-items:flex-start}.pf-nutri-macro-grid{grid-template-columns:1fr}.pf-nutri-actions{grid-template-columns:1fr}}
@media(max-width:720px){.pf-nutri-head{padding:20px 18px;border-radius:24px}.pf-nutri-head h2{font-size:clamp(30px,9vw,42px)}.pf-nutri-head-actions{width:100%;display:grid;grid-template-columns:1fr}.pf-nutri-date{width:100%}.pf-nutri-premium{padding:16px;border-radius:24px}.pf-nutri-summary-grid{grid-template-columns:1fr}.pf-nutri-stat-card{min-height:unset}.pf-nutri-cal-ring{width:min(100%,220px)}.pf-nutri-cal-core strong{font-size:44px}.pf-nutri-macro-card{padding:14px}.pf-nutri-macro-ring{width:74px;height:74px;flex-basis:74px}.pf-nutri-actions .btn{font-size:15px}.pf-nutri-library,.pf-nutri-meals-panel{padding:16px}}
@media(max-width:520px){.pf-nutri-pill{width:100%;justify-content:center}.pf-nutri-head p{font-size:14px}.pf-nutri-cal-copy h3{font-size:30px}.pf-nutri-macro-copy strong{font-size:24px}}


/* Pirela Fit 1.4.46 · Agua circular y cifras de color en Nutrición */
/* Anula la falsa superficie rectangular de la versión 1.4.45. */
.pf-nutri-cal-ring::before,.pf-nutri-cal-ring::after{content:none!important;display:none!important}
.pf-nutri-cal-ring{isolation:isolate;overflow:hidden}
.pf-nutri-water-viewport{position:absolute;inset:16px;border-radius:50%;overflow:hidden;z-index:1;isolation:isolate;background:radial-gradient(circle at 45% 18%,rgba(64,144,226,.35) 0%,rgba(9,21,46,.97) 64%,rgba(7,15,33,.99) 100%);box-shadow:inset 0 1px 5px rgba(255,255,255,.1)}
.pf-theme-light .pf-nutri-water-viewport{background:radial-gradient(circle at 45% 20%,#d5edff 0%,#f7fbff 72%,#eaf3ff 100%);box-shadow:inset 0 1px 6px rgba(38,100,173,.13)}
.pf-nutri-water-fill{position:absolute;left:0;right:0;bottom:0;height:var(--pf-water-level,0%);background:linear-gradient(180deg,#79d7ff 0%,#3e9dea 53%,#267bd1 100%);transition:height .85s cubic-bezier(.22,1,.36,1);z-index:1}
.pf-theme-light .pf-nutri-water-fill{background:linear-gradient(180deg,#9be3ff 0%,#69b9fc 58%,#4b94e0 100%)}
.pf-nutri-water-wave{position:absolute;left:0;top:-24px;width:200%;height:42px;fill:#8bddff;filter:drop-shadow(0 -2px 4px rgba(138,221,255,.16));will-change:transform;pointer-events:none}
.pf-nutri-water-wave-back{opacity:.53;fill:#b1ecff;animation:pf-nutri-wave 8s linear infinite reverse}
.pf-nutri-water-wave-front{opacity:.86;fill:#66ccff;animation:pf-nutri-wave 6.5s linear infinite}
.pf-theme-light .pf-nutri-water-wave-back{fill:#b9f0ff;opacity:.7}
.pf-theme-light .pf-nutri-water-wave-front{fill:#8fdcff;opacity:.95}
@keyframes pf-nutri-wave{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.pf-nutri-water-wave{animation:none!important}.pf-nutri-water-fill{transition:none!important}}
/* Los números están encima del agua: sin paneles ni bloques detrás de las cifras. */
.pf-nutri-cal-core{z-index:3;position:relative;background:none!important;box-shadow:none!important;text-shadow:0 2px 11px rgba(5,24,54,.32)}
.pf-nutri-cal-core strong{color:#d5f4ff!important;text-shadow:0 2px 14px rgba(3,24,56,.58)}
.pf-nutri-cal-core .pf-nutri-ring-caption,.pf-nutri-cal-core small{color:#bfe6ff!important;text-shadow:0 2px 7px rgba(3,24,56,.6)}
.pf-theme-light .pf-nutri-cal-core{background:none!important;text-shadow:0 1px 8px rgba(255,255,255,.76)}
.pf-theme-light .pf-nutri-cal-core strong{color:#155c9d!important;text-shadow:0 1px 6px rgba(255,255,255,.78)}
.pf-theme-light .pf-nutri-cal-core .pf-nutri-ring-caption,.pf-theme-light .pf-nutri-cal-core small{color:#23679c!important;text-shadow:0 1px 6px rgba(255,255,255,.78)}
.pf-nutri-cal-ring.is-over .pf-nutri-cal-core strong{color:#ffa3a3!important}
.pf-theme-light .pf-nutri-cal-ring.is-over .pf-nutri-cal-core strong{color:#b83049!important}
/* Valores de calorías: colores distintos, legibles en ambos temas. */
.pf-nutri-cal-copy .pf-nutri-value-target,.pf-nutri-stat-card .pf-nutri-value-target{color:#c6b5ff!important}
.pf-nutri-stat-card .pf-nutri-value-consumed{color:#ffab8f!important}
.pf-nutri-stat-card .pf-nutri-value-remaining{color:#6bd8ff!important}
.pf-nutri-stat-card .pf-nutri-value-exercise{color:#76e2b7!important}
.pf-nutri-stat-card .pf-nutri-value-remaining.pf-nutri-over{color:#ff8d9a!important}
.pf-theme-light .pf-nutri-cal-copy .pf-nutri-value-target,.pf-theme-light .pf-nutri-stat-card .pf-nutri-value-target{color:#6745b0!important}
.pf-theme-light .pf-nutri-stat-card .pf-nutri-value-consumed{color:#b04c21!important}
.pf-theme-light .pf-nutri-stat-card .pf-nutri-value-remaining{color:#086baf!important}
.pf-theme-light .pf-nutri-stat-card .pf-nutri-value-exercise{color:#087b59!important}
.pf-theme-light .pf-nutri-stat-card .pf-nutri-value-remaining.pf-nutri-over{color:#ad3046!important}
.pf-nutri-stat-card .pf-nutri-value-target,.pf-nutri-stat-card .pf-nutri-value-consumed,.pf-nutri-stat-card .pf-nutri-value-remaining,.pf-nutri-stat-card .pf-nutri-value-exercise{font-weight:850}
.pf-nutri-macro-card.carbs .pf-nutri-value-macro{color:#83e46d!important}
.pf-nutri-macro-card.protein .pf-nutri-value-macro{color:#ffb573!important}
.pf-nutri-macro-card.fat .pf-nutri-value-macro{color:#ffe06d!important}
.pf-theme-light .pf-nutri-macro-card.carbs .pf-nutri-value-macro{color:#23813b!important}
.pf-theme-light .pf-nutri-macro-card.protein .pf-nutri-value-macro{color:#a95712!important}
.pf-theme-light .pf-nutri-macro-card.fat .pf-nutri-value-macro{color:#8f6905!important}
.pf-nutri-macro-card .pf-nutri-value-macro small{color:var(--muted)!important}
.pf-nutri-cal-copy .pf-nutri-pill:first-child b{color:#ffa789}
.pf-theme-light .pf-nutri-cal-copy .pf-nutri-pill:first-child b{color:#aa4e2c}
.pf-nutri-cal-copy .pf-nutri-pill:nth-child(2) b{color:#6dd1fb}
.pf-theme-light .pf-nutri-cal-copy .pf-nutri-pill:nth-child(2) b{color:#0d75b8}


/* Nutrición 1.4.47 — tarjeta con ejercicio */
.pf-nutri-stat-exercise{position:relative;background:linear-gradient(180deg,rgba(21,165,110,.10),rgba(80,186,255,.10));}
.pf-theme-light .pf-nutri-stat-exercise{background:linear-gradient(180deg,rgba(27,170,118,.06),rgba(64,153,255,.06));}
.pf-nutri-card-chip{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;padding:7px 10px;border-radius:999px;background:rgba(17,159,110,.10);border:1px solid rgba(17,159,110,.18);color:#10825a;font-style:normal;font-size:11px;font-weight:800;letter-spacing:.03em}
.pf-theme-dark .pf-nutri-card-chip{color:#8df1c4;background:rgba(16,130,90,.18);border-color:rgba(128,240,190,.18)}
