:root{--focus-ring:#1e3861;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-radius:6px}.btn:focus-visible,button:focus-visible,[role=button]:focus-visible{outline-offset:3px}@supports not selector(:focus-visible){:focus{outline:3px solid var(--focus-ring);outline-offset:2px}}body{margin:0}#root{min-height:100vh}@media (width<=768px){.sidebar{display:none}.bottom-nav{display:flex!important}}@keyframes pip-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pip-celebrate{0%,to{transform:translateY(0)}35%{transform:translateY(-14px)}60%{transform:translateY(0)}80%{transform:translateY(-6px)}}@keyframes pip-sad{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(3px)rotate(2deg)}}@keyframes bell-ring{0%,to{transform:rotate(0)}20%{transform:rotate(16deg)}40%{transform:rotate(-14deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-6deg)}}@keyframes leaf-drift{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-14px)rotate(6deg)}}.pip-body{animation:3s ease-in-out infinite pip-float}.pip-celebrate{animation:.9s ease-in-out 2 pip-celebrate}.pip-sad{animation:4s ease-in-out infinite pip-sad}.bell-anim{transform-box:fill-box;transform-origin:50% 0;animation:.9s ease-in-out infinite bell-ring}.leaf-drift{animation:7s ease-in-out infinite leaf-drift}@keyframes pip-login-float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-8px)rotate(1deg)}}@keyframes pip-login-bounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-10px)scale(1.02)}}@keyframes pip-login-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)rotate(-3deg)}40%{transform:translate(6px)rotate(3deg)}60%{transform:translate(-4px)rotate(-2deg)}80%{transform:translate(4px)rotate(2deg)}}@keyframes login-float-slow{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-12px)rotate(4deg)}}@keyframes login-float-medium{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-8px)rotate(-6deg)}}@keyframes login-pulse{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.pip-login-float{animation:3s ease-in-out infinite pip-login-float}.pip-login-bounce{animation:.6s ease-in-out pip-login-bounce}.pip-login-shake{animation:.5s ease-in-out pip-login-shake}.anim-float-slow{animation:6s ease-in-out infinite login-float-slow}.anim-float-medium{animation:4.5s ease-in-out infinite login-float-medium}.anim-pulse{animation:3s ease-in-out infinite login-pulse}.login-input{background-color:#f8fafc;transition:background-color .25s,border-color .25s,box-shadow .25s}.login-input:focus{background-color:#fff;outline:none;box-shadow:0 0 0 4px #31a8a826;border-color:#31a8a8!important}.login-input[aria-invalid=true]{background-color:#fff1f299;border-color:#fb7185!important}.glass-nav{-webkit-backdrop-filter:blur(10px);background:#ffffffa6;border-bottom:1px solid #fff6}@media (prefers-reduced-motion:reduce){.pip-body,.pip-celebrate,.pip-sad,.bell-anim,.leaf-drift,.pip-login-float,.pip-login-bounce,.pip-login-shake,.anim-float-slow,.anim-float-medium,.anim-pulse{animation:none!important}}.btn{cursor:pointer;border:none;border-radius:12px;padding:10px 20px;font-family:inherit;font-size:15px;font-weight:600;transition:transform .1s;position:relative;overflow:hidden}.btn:hover{transform:translateY(-1px)}.btn-primary{color:#1b2b48;background:linear-gradient(#56bbb8 0%,#34c7b2 100%);border:2px solid #1e3861}.btn-primary:before{content:"";pointer-events:none;background:#ffffff59;border-radius:6px;height:8px;position:absolute;top:4px;left:10px;right:10px}.btn-ghost{color:#1b2b48;background:0 0;border:1px solid #1b2b48}.day-card{gap:12px;padding-top:68px;display:grid;position:relative}.next-dose-alert{z-index:5;min-width:0;max-width:min(100%,320px);position:absolute;top:0;right:0}.day-card-header{min-width:0}@media (width<=560px){.day-card-header{flex-direction:column;align-items:flex-start!important;min-height:0!important;padding:16px!important}.day-card-pip{align-self:flex-end}}.landing-footer{border-top:1px solid var(--color-border,#e2e8f0);background:var(--color-card,#fff);padding:28px 24px 32px}.landing-footer-nav{flex-wrap:wrap;justify-content:center;gap:20px;margin-bottom:12px;display:flex}@media (width<=560px){.landing-header{padding:12px 16px!important}.landing-footer{padding:24px 16px 28px!important}.landing-footer-nav{gap:14px!important}}.dose-card-layout{gap:14px;min-width:0;display:grid}.dose-card-time{color:var(--color-muted,#4d586a);font-size:22px;font-weight:800;line-height:1.2;transition:opacity .16s ease-out}.dose-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:0;display:grid}.dose-card-item{border:1px solid var(--color-border,#e3ecea);background:#fff;border-radius:12px;gap:10px;min-width:0;padding:10px;display:grid}.dose-card-item-main{align-items:center;gap:8px;min-width:0;display:flex}.dose-card-item-copy{flex:1;gap:2px;min-width:0;display:grid}.dose-card-item-name{overflow-wrap:anywhere;color:var(--color-navy,#1b2b48);font-size:13px;font-weight:700}.dose-card-item-quantity{color:var(--color-muted,#4d586a);font-size:11px}.dose-medication-actions{border-top:1px solid var(--color-border,#e3ecea);flex-wrap:wrap;gap:6px;padding-top:8px;display:flex}.dose-medication-actions .btn{flex:80px;min-height:38px;padding:8px 12px}.dose-card-error{color:#b02a2a;margin:0;font-size:13px}@media (width<=900px){.dose-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.dose-card-grid{grid-template-columns:minmax(0,1fr)}.dose-medication-actions .btn{flex-basis:110px}}.progress-page{gap:20px;width:100%;display:grid}.progress-page-heading h2,.progress-section-heading h3{color:var(--color-navy,#1b2b48);margin:0}.progress-page-heading p,.progress-section-heading p{color:var(--color-muted,#4d586a);margin:5px 0 0;font-size:13px}.progress-overview{grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);align-items:center;gap:20px;display:grid}.progress-overview-score{justify-items:start;gap:4px;display:grid}.progress-overview-score>span{color:var(--color-muted,#4d586a);font-size:13px;font-weight:600}.progress-overview-score>strong{color:var(--color-navy,#1b2b48);font-size:clamp(32px,6vw,44px);line-height:1}.progress-overview-score>p,.progress-upcoming{color:var(--color-muted,#4d586a);margin:0;font-size:12px}.progress-overview-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.progress-overview-stats>div{background:#f5faf9;border-radius:12px;justify-items:center;gap:4px;padding:12px 6px;display:grid}.progress-overview-stats strong{color:var(--color-navy,#1b2b48);font-size:20px}.progress-overview-stats span{color:var(--color-muted,#4d586a);text-align:center;font-size:11px}.progress-upcoming{border-top:1px solid var(--color-border,#e3ecea);margin-top:14px;padding-top:12px}.progress-medications-section{gap:14px;display:grid}.progress-section-heading{justify-content:space-between;align-items:end;gap:12px;display:flex}.progress-legend{color:var(--color-muted,#4d586a);flex-wrap:wrap;gap:10px;font-size:11px;display:flex}.progress-legend span,.progress-medication-stats span{align-items:center;gap:5px;display:inline-flex}.progress-dot{border-radius:50%;flex:0 0 8px;width:8px;height:8px;display:inline-block}.progress-dot-taken,.progress-segment-taken{background:#2eb5a5}.progress-dot-pending,.progress-segment-pending{background:#f7b62f}.progress-dot-skipped,.progress-segment-skipped{background:#e78686}.progress-segment-empty{background:#e8efee;width:100%}.progress-pie-wrap{border-bottom:1px solid var(--color-border,#e3ecea);flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:16px;padding-bottom:16px;display:flex}.progress-pie-vacio{color:var(--color-muted,#4d586a);margin:0;font-size:14px}.progress-pie-leyenda{color:var(--color-navy,#1a365d);gap:8px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.progress-pie-leyenda li{align-items:center;gap:8px;display:flex}.progress-medications-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px;display:grid}.progress-medication-heading{align-items:center;gap:10px;min-width:0;display:flex}.progress-medication-icon{background:#e9f7f5;border-radius:12px;flex:0 0 38px;place-items:center;width:38px;height:38px;font-size:20px;display:grid}.progress-medication-title{flex:1;min-width:0}.progress-medication-title h3{overflow-wrap:anywhere;color:var(--color-navy,#1b2b48);margin:0;font-size:14px}.progress-medication-title p{color:var(--color-muted,#4d586a);margin:3px 0 0;font-size:11px}.progress-medication-percent{color:var(--color-navy,#1b2b48);font-size:18px}.progress-status-bar{background:#e8efee;border-radius:999px;width:100%;height:12px;display:flex;overflow:hidden}.progress-segment{height:100%;transition:width .18s;display:block}.progress-medication-stats{color:var(--color-muted,#4d586a);flex-wrap:wrap;gap:10px 14px;font-size:11px;display:flex}.progress-next-dose{color:var(--color-muted,#4d586a);margin:-4px 0 0;font-size:11px}.progress-empty-state{text-align:center;justify-items:center;gap:10px;padding:8px 0;display:grid}.progress-empty-icon{font-size:30px}.progress-empty-state h3{color:var(--color-navy,#1b2b48);margin:0;font-size:16px}.progress-empty-state p,.progress-message{color:var(--color-muted,#4d586a);margin:0;font-size:13px}@media (width<=560px){.progress-page{gap:14px}.progress-overview{grid-template-columns:1fr;gap:14px}.progress-overview-score{text-align:center;justify-items:center}.progress-section-heading{flex-direction:column;align-items:start}.progress-medication-stats{gap:8px 10px}}
