:root{--bg:#f6f7f6;--surface:#fff;--text:#1c2522;--muted:#5f6b67;--border:#dde3e0;--primary:#0f766e;--primary-ink:#fff;--primary-soft:#e6f4f1;--danger:#b42318;--danger-soft:#fdecea;--warn:#8a5a00;--warn-soft:#fff5e0;--ok:#16794a;--radius:12px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}@media (prefers-color-scheme:dark){:root{--bg:#111615;--surface:#1a201e;--text:#e6ebe9;--muted:#9aa7a2;--border:#2c3532;--primary:#2dd4bf;--primary-ink:#04201c;--primary-soft:#12302b;--danger:#f97066;--danger-soft:#3a1714;--warn:#fbbf24;--warn-soft:#33270b;--ok:#4ade80}}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}h1{margin:0 0 .5rem;font-size:1.5rem}h2{margin:0;font-size:1.15rem}h3{margin:0;font-size:1rem}p{margin:.4rem 0}a{color:var(--primary)}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;min-height:44px;padding:.6rem .7rem}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0;accent-color:var(--primary);flex:none}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:1px}button,.button{border:1px solid var(--border);background:var(--surface);cursor:pointer;min-height:44px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;text-decoration:none;display:inline-flex}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.button.primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary);font-weight:600}button.danger{background:var(--danger);color:#fff;border-color:var(--danger)}button.link{color:var(--primary);background:0 0;border:none;min-height:0;padding:.25rem;text-decoration:underline}button.icon{min-height:36px;padding:.25rem .6rem}button.small{min-height:36px;padding:.3rem .8rem}button.block{width:100%}button.big{min-height:56px;font-size:1.1rem}.danger-text{color:var(--danger)!important}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.pad{padding:2rem}.error{color:var(--danger);background:var(--danger-soft);border-radius:8px;margin:.4rem 0;padding:.6rem .8rem}.ok{color:var(--ok)}.warn{color:var(--warn);background:var(--warn-soft);border-radius:8px;padding:.6rem .8rem}.notice{background:var(--primary-soft);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.8rem;padding:.8rem 1rem;display:flex}.stack{flex-direction:column;gap:.75rem;display:flex}.stack-lg{flex-direction:column;gap:1.25rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.row>input{flex:220px;width:auto}.row.center{justify-content:center}.wrap{flex-wrap:wrap}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{padding:.6rem 1rem;padding-top:max(.6rem, env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:1rem;display:flex}.brand{color:var(--primary);font-size:1.2rem;font-weight:800}.who{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.875rem;overflow:hidden}.nav{background:var(--surface);border-bottom:1px solid var(--border);gap:.25rem;padding:.4rem 1rem;display:flex;overflow-x:auto}.nav a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:.5rem .8rem;font-weight:500;text-decoration:none}.nav a.active{background:var(--primary-soft);color:var(--primary)}.agenda-cta{text-align:center;background:var(--primary);color:#fff;border-radius:12px;margin-bottom:16px;padding:12px 16px;font-weight:600;text-decoration:none;display:block}.main{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:1rem 1rem 5rem}@media (width<=700px){.nav-paciente{z-index:10;border-top:1px solid var(--border);padding-bottom:max(.4rem, env(safe-area-inset-bottom));border-bottom:none;justify-content:space-around;gap:0;padding-left:.25rem;padding-right:.25rem;position:fixed;bottom:0;left:0;right:0}.nav-paciente a{text-align:center;flex:1;padding:.5rem .2rem;font-size:.9rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.75rem;padding:1rem;display:flex}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.page-head h1{margin:0}.field{flex-direction:column;gap:.25rem;display:flex}.field-label{font-size:.9rem;font-weight:600}.field-hint{color:var(--muted);font-size:.8rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:.8rem 1rem;display:grid}.form-grid.compact{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.form-grid .full{grid-column:1/-1}fieldset{border:1px solid var(--border);border-radius:8px;margin:0;padding:.6rem .8rem}legend{padding:0 .3rem;font-size:.9rem;font-weight:600}.check{cursor:pointer;align-items:flex-start;gap:.6rem;display:flex}.check.big{align-items:center;font-size:1.1rem}.login{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:380px;padding:1.5rem}.brand-big{color:var(--primary);margin:0;font-size:2.2rem;font-weight:800}.code-input{letter-spacing:.5rem;text-align:center;font-size:1.6rem}.mfa-qr{background:#fff;border-radius:8px;align-self:center;width:200px;height:200px;padding:8px}.mfa-secret{word-break:break-all;-webkit-user-select:all;user-select:all}.consent{flex-direction:column;gap:.75rem;max-width:720px;margin:0 auto;padding:1rem;display:flex}.consent-body{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;font-size:.95rem}.consent-body p{margin:.2rem 0}.mail-draft{margin-top:.5rem}.mail-draft textarea{width:100%;font:inherit;font-size:.9rem}.badge{background:var(--primary-soft);color:var(--primary);border-radius:999px;margin-left:.3rem;padding:.1rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.badge.etapa{color:var(--primary);background:var(--primary-soft)}.badge.alert{background:var(--danger-soft);color:var(--danger)}.badge.muted-badge{background:var(--bg);color:var(--muted);font-weight:500}.track{gap:0;margin:.5rem 0;padding:0;list-style:none;display:flex;overflow-x:auto}.track-step{border-top:4px solid var(--border);text-align:center;flex-direction:column;flex:1;align-items:center;min-width:0;padding:.5rem .25rem;display:flex;position:relative}.track-step.estado-completada{border-color:var(--primary)}.track-step.estado-activa{border-color:var(--primary);background:var(--primary-soft);border-radius:0 0 8px 8px}.track-step.estado-omitida{opacity:.5;text-decoration:line-through}.track-gate{background:var(--surface);border:2px solid var(--primary);width:16px;height:16px;position:absolute;top:-10px;left:-8px;transform:rotate(45deg)}.track-num{color:var(--muted);font-size:.75rem}.track-name{overflow-wrap:anywhere;font-size:.9rem;font-weight:600}.track-state{color:var(--muted);font-size:.75rem}@media (width<=480px){.track-name{font-size:.78rem}.track-num,.track-state{font-size:.68rem}}details.phase{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.6rem;padding:.6rem .8rem;display:flex}details.phase[open]>:not(summary){margin-top:.6rem}details.phase summary{cursor:pointer;align-items:center;gap:.4rem;display:flex}.plan{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.6rem;padding:.8rem;display:flex}.plan.inactive,.inactive{opacity:.55}.plan-head{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.plan-head h3{margin-right:auto}.items{flex-direction:column;gap:.5rem;margin:0;padding-left:1.2rem;display:flex}.item-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.item-actions{align-items:center;gap:.3rem;display:flex}.item-form,.evaluation-form{background:var(--bg);border-radius:10px;flex-direction:column;gap:.6rem;padding:.8rem;display:flex}.evaluation{border-left:4px solid var(--primary);padding:.3rem .8rem}.evaluation ul{margin:.2rem 0;padding-left:1.1rem}.session{flex-direction:column;gap:.75rem;max-width:560px;margin:0 auto;display:flex}.session-progress{color:var(--muted);font-size:.875rem}.bar{background:var(--border);border-radius:3px;height:6px;margin-top:.3rem;overflow:hidden}.bar span{background:var(--primary);height:100%;display:block}.dosage{background:var(--primary-soft);border-radius:10px;padding:.7rem .9rem;font-size:1.15rem;font-weight:600}.kine-note{border-left:4px solid var(--primary);padding-left:.7rem}.sets-count{text-align:center;font-size:1.3rem;font-weight:700}.media{background:#000;border-radius:10px;width:100%;position:relative;overflow:hidden}.media iframe{aspect-ratio:16/9;border:0;width:100%;display:block}.media video,.media img{object-fit:contain;background:#000;width:100%;max-height:60vh;display:block}.timer{flex-direction:column;align-items:center;gap:.8rem;padding:1rem 0;display:flex}.timer-label{font-size:1.1rem;font-weight:700}.timer-ring{background:conic-gradient(var(--primary) var(--pct), var(--border) 0);border-radius:50%;place-items:center;width:200px;height:200px;display:grid}.timer-ring:before{content:"";background:var(--bg);border-radius:50%;grid-area:1/1;width:170px;height:170px}.timer-value{font-variant-numeric:tabular-nums;z-index:1;grid-area:1/1;font-size:3rem;font-weight:800}.scale-buttons{grid-template-columns:repeat(11,1fr);gap:4px;display:grid}.scale-buttons button{min-height:44px;padding:0;font-weight:700}.scale-buttons button.selected{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.scale-ends{color:var(--muted);justify-content:space-between;margin-top:.2rem;font-size:.8rem;display:flex}.stats{grid-template-columns:repeat(3,1fr);gap:.6rem;display:grid}.stats div{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:center;padding:.8rem;display:flex}.stats strong{color:var(--primary);font-size:1.6rem}.stats span{color:var(--muted);text-align:center;font-size:.8rem}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.key-rpe,.key-pain{border-radius:2px;width:14px;height:4px;display:inline-block}.key-rpe{background:var(--primary)}.key-pain{background:var(--danger);margin-left:.6rem}.chart{width:100%;max-width:480px;height:auto}.chart-grid{stroke:var(--border)}.chart-tick{fill:var(--muted);font-size:10px}.chart-rpe{stroke:var(--primary);fill:none;stroke-width:2px}.chart-pain{stroke:var(--danger);fill:none;stroke-width:2px}.dot-rpe{fill:var(--primary)}.dot-pain{fill:var(--danger)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.5rem}.table th{color:var(--muted);font-size:.8rem;font-weight:600}.table td.pain{color:var(--danger);font-weight:600}.table select{min-height:36px;padding:.3rem}.list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list li{border-bottom:1px solid var(--border);padding:.6rem 0}.tabs{border-bottom:1px solid var(--border);gap:.3rem;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0}.tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem;display:grid}.exercise-card{border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:flex-start;gap:.3rem;padding:.6rem;display:flex}.preview{max-width:420px}details.phase>button{margin-right:.6rem}.question{font-size:1.25rem;line-height:1.35}.options{flex-direction:column;gap:.5rem;display:flex}.options button{text-align:left;justify-content:flex-start;min-height:52px}.options button.selected{background:var(--primary);color:var(--primary-ink);border-color:var(--primary);font-weight:600}.pending-q{border:2px solid var(--primary)}.media.thumb{display:block}.media.thumb img{aspect-ratio:16/9;object-fit:cover}.media .play{color:#fff;text-shadow:0 2px 8px #0009;place-items:center;font-size:2rem;display:grid;position:absolute;inset:0}.stage-list{flex-direction:column;gap:.4rem;margin:0 0 .5rem;padding-left:1.75rem;list-style:decimal;display:flex}.stage-list li{flex-wrap:nowrap}.stage-list input{flex:1;min-width:0}.phase-row{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.2rem .8rem;display:flex}.phase-row input{max-width:16rem;padding:.3rem .5rem}.dose-parts{flex-wrap:wrap;align-items:center;row-gap:.25rem;display:flex}.dose-part{white-space:nowrap;align-items:center;display:inline-flex}.dose-part>.muted{margin:0 .35rem}.help-dot{width:1.25rem;height:1.25rem;min-height:0;color:var(--primary);border-color:var(--primary);background:0 0;border-radius:50%;flex:none;margin-left:.25rem;padding:0;font-size:.75rem;font-weight:700;line-height:1}.help-dot[aria-expanded=true]{background:var(--primary);color:var(--primary-ink)}.dose-help{background:var(--primary-soft);color:var(--text);border-radius:8px;margin:.4rem 0 0;padding:.5rem .75rem;font-weight:400}.dosage .dose-help{background:var(--surface);font-size:.95rem}.warn-text{color:var(--warn)}.dot{vertical-align:middle;border-radius:50%;width:.7rem;height:.7rem;margin-right:.25rem;display:inline-block}.portion-input{text-align:center;width:4.5rem;min-width:0;padding:.3rem}.table.portions td,.table.portions th{text-align:center}.table.portions td:first-child,.table.portions th:first-child{text-align:left}.meter{background:var(--primary-soft);border-radius:999px;height:.75rem;overflow:hidden}.meter>div{background:var(--primary);border-radius:999px;height:100%;transition:width .3s}.portion-goals,.meal-log,.food-list{gap:.35rem;margin:0 0 .75rem;padding:0;list-style:none;display:grid}.portion-goals li.done strong{color:var(--ok)}.counters>li{grid-template-columns:1fr auto;align-items:center;gap:.5rem;display:grid}.group-toggle.link{text-align:left;min-width:0;color:inherit;padding:0;text-decoration:none;display:block}.exchange{grid-column:1/-1;margin:0 0 .5rem;padding-left:1rem;font-size:.95rem}.counter{white-space:nowrap;align-items:center;gap:.35rem;display:inline-flex}.counter button{min-width:2.2rem;padding-left:.4rem;padding-right:.4rem;font-size:1.2rem;line-height:1}.meal-log li{border-left:3px solid var(--border);padding-left:.5rem}.food-list li{border-bottom:1px solid var(--border);padding:.25rem 0}.day-nav{justify-content:space-between;align-items:center}.day-nav strong{text-transform:capitalize}.tag-group{border:0;flex-wrap:wrap;gap:.25rem .75rem;margin:0 0 .5rem;padding:0;display:flex}.tag-group legend{margin-bottom:.25rem;padding:0}.check.tag{margin:0}.tags{flex-wrap:wrap;gap:.3rem;margin:.4rem 0;display:flex}.task-monitor{border-top:1px solid var(--border);padding-top:.75rem}.task-form{border:1px solid var(--border);border-radius:8px;margin-bottom:1rem;padding:.75rem}.task-instructions{white-space:pre-line}.day-dots{gap:.3rem;margin:.5rem 0;display:flex}.day-dot{background:var(--border);border-radius:50%;width:.9rem;height:.9rem}.day-dot.done{background:var(--ok)}.day-dot.missed{background:var(--danger)}.day-dot.partial{background:var(--warn)}.row.space{justify-content:space-between;align-items:center}.description{white-space:pre-line}.goals{color:var(--primary);font-weight:600}.media-pair{grid-template-columns:1fr 1fr;gap:8px;display:grid}.media-pair figure{margin:0}.media-pair img{border-radius:8px;width:100%;display:block}.media-pair figcaption{text-align:center;color:var(--muted);font-size:.85rem}.tip-card{background:var(--primary-soft);border-radius:12px;margin-bottom:16px;padding:14px 16px}.tip-card h3{margin:4px 0 6px;font-size:1.05rem}.tip-card p{margin:0}.tip-label{color:var(--primary);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.tip-list{gap:12px;padding-left:1.2rem;display:grid}.tip-list li{gap:4px;display:grid}.tip-list li.inactive{opacity:.6}.exercise-photos{border:1px dashed var(--border);border-radius:12px;margin-top:8px;padding:12px}.exercise-photos .photo-empty{aspect-ratio:4/3;background:var(--primary-soft);color:var(--muted);border-radius:8px;place-items:center;display:grid}.exercise-photos label.button{cursor:pointer;display:inline-block}
