:root{--p-melasma-accent: #7A3A10;--p-melasma-accent-soft: #A35C2E;--p-melasma-surface: #F8F2EE;--p-melasma-card: #FFFDFB;--p-melasma-ink: #3D2415;--p-desinf-accent: #5D7A58;--p-desinf-accent-soft: #7F9B79;--p-desinf-surface: #F4F8F3;--p-desinf-card: #FFFFFF;--p-desinf-ink: #2F4730;--p-inst-accent: #4A443C;--p-inst-accent-soft: #6E655A;--p-inst-surface: #F6F5F2;--p-inst-card: #FFFFFF;--p-inst-ink: #262320;--p-success-ink: #4F7D57;--p-danger-ink: #B5453F;--p-warning-ink: #92661F;--brand-bg: #502103;--brand-on-bg: #FFFFFF;--font-display: "Fraunces", "Iowan Old Style", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display-sm: 1.75rem;--display-md: 2.5rem;--display-lg: 3.5rem;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.1875rem;--weight-display: 340;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 40px;--space-8: 56px;--space-9: 72px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 26px;--radius-pill: 999px;--hairline: 1px;--ease-glide: cubic-bezier(.22, 1, .36, 1);--ease-settle: cubic-bezier(.34, 1.3, .64, 1);--motion-quick: .14s;--motion-base: .24s;--motion-slow: .42s;--z-rail: 200;--z-sheet: 900;--z-toast: 950;--surface: var(--p-inst-surface);--surface-raised: var(--p-inst-card);--surface-sunken: #EAE8E4;--surface-hover: #EEECE8;--ink: var(--p-inst-ink);--ink-soft: #6B655C;--ink-faint: #99938A;--ink-on-accent: #FFFFFF;--accent: var(--p-inst-accent);--accent-soft: var(--p-inst-accent-soft);--line: rgba(38, 35, 32, .09);--line-strong: rgba(38, 35, 32, .18);--ring: rgba(38, 35, 32, .32);--success: var(--p-success-ink);--success-wash: rgba(79, 125, 87, .12);--success-light: #A8C9AE;--day-in-progress: var(--p-melasma-accent-soft);--danger: var(--p-danger-ink);--danger-wash: rgba(181, 69, 63, .1);--warning: var(--p-warning-ink);--warning-wash: rgba(146, 102, 31, .12);--retroactive: #2563EB;--retroactive-wash: rgba(37, 99, 235, .12);--shadow-card: 0 1px 2px rgba(38, 35, 32, .04), 0 6px 20px -8px rgba(38, 35, 32, .1);--shadow-sheet: 0 -12px 40px -8px rgba(38, 35, 32, .2);--shadow-rail: 4px 0 24px -12px rgba(38, 35, 32, .12);--wash: radial-gradient(ellipse at 20% -10%, rgba(74, 68, 60, .05), transparent 55%), radial-gradient(ellipse at 100% 0%, rgba(110, 101, 90, .04), transparent 45%)}body.protocol-melasma{--surface: var(--p-melasma-surface);--surface-raised: var(--p-melasma-card);--surface-sunken: #F0E5DD;--surface-hover: #F3E9E1;--ink: var(--p-melasma-ink);--ink-soft: #7A5D4C;--ink-faint: #A48D7E;--accent: var(--p-melasma-accent);--accent-soft: var(--p-melasma-accent-soft);--day-in-progress: var(--accent-soft);--line: rgba(122, 58, 16, .11);--line-strong: rgba(122, 58, 16, .22);--ring: rgba(122, 58, 16, .35);--shadow-card: 0 1px 2px rgba(61, 36, 21, .05), 0 6px 20px -8px rgba(61, 36, 21, .12);--shadow-sheet: 0 -12px 40px -8px rgba(61, 36, 21, .22);--wash: radial-gradient(ellipse at 20% -10%, rgba(122, 58, 16, .055), transparent 55%), radial-gradient(ellipse at 100% 0%, rgba(163, 92, 46, .045), transparent 45%)}body.protocol-desinflamacao{--surface: var(--p-desinf-surface);--surface-raised: var(--p-desinf-card);--surface-sunken: #E7F0E6;--surface-hover: #ECF3EB;--ink: var(--p-desinf-ink);--ink-soft: #56745A;--ink-faint: #86A187;--accent: var(--p-desinf-accent);--accent-soft: var(--p-desinf-accent-soft);--day-in-progress: var(--p-melasma-accent-soft);--line: rgba(93, 122, 88, .13);--line-strong: rgba(93, 122, 88, .25);--ring: rgba(93, 122, 88, .4);--shadow-card: 0 1px 2px rgba(47, 71, 48, .05), 0 6px 20px -8px rgba(47, 71, 48, .12);--shadow-sheet: 0 -12px 40px -8px rgba(47, 71, 48, .22);--wash: radial-gradient(ellipse at 20% -10%, rgba(93, 122, 88, .06), transparent 55%), radial-gradient(ellipse at 100% 0%, rgba(127, 155, 121, .045), transparent 45%)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}html,body,#root{height:100%}button{font:inherit}a{color:inherit;text-decoration:none}*{-webkit-tap-highlight-color:transparent}body{font-family:var(--font-body);background-color:var(--surface);background-image:none;color:var(--ink);line-height:1.5;transition:background-color var(--motion-base) var(--ease-glide),color var(--motion-base) var(--ease-glide)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--radius-pill)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.w-full{width:100%}.text-center{text-align:center}.text-ink{color:var(--ink)}.hidden{display:none!important}.display-sm{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--display-sm);letter-spacing:-.01em;color:var(--ink)}.display-md{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--display-md);letter-spacing:-.01em;color:var(--ink);margin-bottom:0}.display-lg{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--display-lg);letter-spacing:-.015em;color:var(--ink)}.body-md{font-size:var(--text-md);color:var(--ink-soft)}.body-md-strong{font-size:var(--text-md);color:var(--ink);font-weight:var(--weight-medium)}.body-sm{font-size:var(--text-sm);color:var(--ink-soft)}.eyebrow{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}@media (prefers-reduced-motion: no-preference){.animate-in{animation:settleIn var(--motion-base) var(--ease-settle)}}@keyframes settleIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-canvas{min-height:100vh;min-height:100dvh;display:flex}.rail{display:none;flex-direction:column;align-items:center;justify-content:space-between;width:76px;padding:var(--space-5) 0;background-color:var(--surface-raised);box-shadow:var(--shadow-rail);z-index:var(--z-rail)}@media (min-width: 1024px){.rail{display:flex;position:sticky;top:0;height:100dvh}}.rail-mark{width:28px;height:28px;object-fit:contain;border-radius:var(--radius-sm)}.rail-links{display:flex;flex-direction:column;gap:var(--space-4)}.rail-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);color:var(--ink-faint);background:transparent;border:none;cursor:pointer;font-size:1.1rem;transition:all var(--motion-quick) var(--ease-glide)}.rail-link:hover{background-color:var(--surface-hover);color:var(--ink)}.rail-link.active{background-color:var(--accent);color:var(--ink-on-accent)}.canvas-main{flex:1;min-width:0;padding-bottom:calc(96px + var(--safe-bottom))}@media (min-width: 1024px){.canvas-main{padding-bottom:0}}.canvas-topbar{display:flex;align-items:center;justify-content:space-between;padding-top:calc(var(--safe-top) + var(--space-4));padding-right:max(var(--space-5),var(--safe-right));padding-bottom:10px;padding-left:max(var(--space-5),var(--safe-left))}.canvas-topbar-actions{display:flex;align-items:center;gap:var(--space-2)}.canvas-content{padding:0 var(--space-4) var(--space-6);max-width:880px;margin:0 auto}@media (min-width: 768px){.canvas-content{padding:0 var(--space-6) var(--space-8)}}@media (min-width: 1024px){.canvas-content{padding:var(--space-8) var(--space-8);max-width:960px}}.page-hero{--page-hero-inline: var(--space-4);margin-inline:calc(-1 * var(--page-hero-inline));padding-inline:var(--page-hero-inline);padding-top:10px;padding-bottom:20px;margin-bottom:0;background-color:var(--surface);background-image:var(--wash);background-repeat:no-repeat;background-size:100% 100%;background-position:top center}@media (min-width: 768px){.page-hero{--page-hero-inline: var(--space-6)}}@media (min-width: 1024px){.page-hero{--page-hero-inline: var(--space-8);margin-top:calc(-1 * var(--space-8));padding-top:var(--space-8)}}.page-hero--fill{min-height:100dvh;margin:0;padding-top:calc(var(--safe-top) + var(--space-5));padding-right:max(var(--space-5),var(--safe-right));padding-bottom:calc(var(--safe-bottom) + var(--space-5));padding-left:max(var(--space-5),var(--safe-left));display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box}.pill-nav{position:fixed;left:50%;bottom:max(var(--space-4),var(--safe-bottom));transform:translate(-50%);display:flex;gap:var(--space-1);background-color:var(--surface-raised);border-radius:var(--radius-pill);padding:var(--space-1);box-shadow:var(--shadow-card);z-index:var(--z-rail);max-width:calc(100vw - var(--space-4) - var(--safe-left) - var(--safe-right))}@media (min-width: 1024px){.pill-nav{display:none}}.pill-nav-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);border:none;background:transparent;color:var(--ink-faint);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:all var(--motion-quick) var(--ease-glide)}.pill-nav-item.active{background-color:var(--accent);color:var(--ink-on-accent)}.surface{background-color:var(--surface-raised);border:var(--hairline) solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.surface-pad{padding:var(--space-5)}@media (min-width: 768px){.surface-pad{padding:var(--space-6)}}.progress-ring-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.progress-ring-center{position:absolute;display:flex;flex-direction:column;align-items:center}.timeline{position:relative;padding-left:28px}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:1px;background:var(--line-strong)}.timeline-item{position:relative;padding-bottom:var(--space-6)}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:-28px;top:4px;width:14px;height:14px;border-radius:50%;background-color:var(--surface);border:2px solid var(--line-strong);transition:all var(--motion-base) var(--ease-settle)}.timeline-item.done .timeline-dot{background-color:var(--accent);border-color:var(--accent)}.dose-card{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);border:var(--hairline) solid var(--line);background-color:var(--surface-raised);transition:all var(--motion-base) var(--ease-glide)}.dose-card.done{background-color:var(--success-wash);border-color:transparent}.dose-card.checking{transform:scale(.98)}@media (hover: hover){.dose-card:not(.done):hover{border-color:var(--line-strong);box-shadow:var(--shadow-card)}}.dose-time{font-family:var(--font-display);font-size:1.05rem;color:var(--ink-soft);min-width:56px}.dose-name{font-weight:var(--weight-semibold);color:var(--ink)}.dose-meta{font-size:var(--text-sm);color:var(--ink-soft)}.dose-check{flex-shrink:0;border:none;border-radius:var(--radius-pill);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--motion-quick) var(--ease-glide);background-color:var(--surface-sunken);color:var(--ink-faint)}.dose-check.done{background-color:var(--accent);color:var(--ink-on-accent)}.dose-check:disabled{cursor:wait;opacity:.85}.dose-check .spinner{width:16px;height:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-pill);border:var(--hairline) solid transparent;font-weight:var(--weight-semibold);font-size:var(--text-sm);padding:13px 22px;cursor:pointer;transition:all var(--motion-quick) var(--ease-glide)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.98)}.btn-sm{padding:9px 16px;font-size:var(--text-xs)}.btn-fill{background-color:var(--accent);color:var(--ink-on-accent)}.btn-fill:hover:not(:disabled){filter:brightness(1.08)}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn-ghost:hover:not(:disabled){background-color:var(--surface-hover)}.btn-ghost-danger{color:var(--danger)}.btn-ghost-danger:hover:not(:disabled){background-color:var(--danger-wash)}.btn-text{background:transparent;color:var(--ink-soft);padding:var(--space-2) var(--space-3)}.btn-danger{background-color:var(--danger);color:#fff}.install-app-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:var(--radius-pill);background:#ffffff80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:var(--hairline) solid var(--line);color:var(--ink-soft);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:transform var(--motion-quick) var(--ease-settle),background-color var(--motion-quick) var(--ease-settle)}.install-app-btn:hover{transform:translateY(-1px);background:#ffffffbf}.install-app-btn:active{transform:scale(.96)}.install-steps{display:flex;flex-direction:column;gap:var(--space-4)}.install-step{display:flex;gap:var(--space-3);align-items:flex-start}.install-step-icon{font-size:1.3rem;line-height:1}.field{margin-bottom:var(--space-4);width:100%}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}@media (max-width: 420px){.field-row{grid-template-columns:1fr}}.field-label{display:block;font-size:var(--text-sm);color:var(--ink-soft);margin-bottom:var(--space-2)}.field-input{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--surface);border:var(--hairline) solid var(--line-strong);border-radius:var(--radius-sm);padding:13px 16px;font-family:var(--font-body);font-size:var(--text-md);color:var(--ink);transition:all var(--motion-quick) var(--ease-glide)}.field-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}textarea.field-input{resize:vertical;min-height:90px}.field-error{color:var(--danger);font-size:var(--text-sm);margin-top:var(--space-2)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14121059;display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-sheet);padding:0;-webkit-transform:translate3d(0,0,0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}@media (min-width: 640px){.sheet-overlay{align-items:center;padding:var(--space-5)}}.sheet{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;background-color:var(--surface-raised);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-sheet);padding:var(--space-3) var(--space-5) max(var(--space-6),var(--safe-bottom))}@media (min-width: 640px){.sheet{border-radius:var(--radius-lg)}}.sheet-grabber{width:100%;height:36px;display:flex;align-items:center;justify-content:center;margin:calc(-1 * var(--space-2)) 0 var(--space-3);cursor:grab}.sheet-grabber-bar{width:40px;height:4px;border-radius:var(--radius-pill);background:var(--line-strong)}@media (min-width: 640px){.sheet-grabber{display:none}}.toast-stack{position:fixed;bottom:calc(var(--space-9) + var(--space-5) + var(--safe-bottom));left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);width:calc(100% - var(--space-6) - var(--safe-left) - var(--safe-right));max-width:420px}@media (min-width: 1024px){.toast-stack{bottom:var(--space-6)}}.toast{background-color:var(--ink);color:var(--surface-raised);padding:14px 20px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);box-shadow:var(--shadow-sheet);font-size:var(--text-sm)}.toast-action{background:#ffffff29;border:none;color:inherit;border-radius:var(--radius-pill);padding:5px 14px;font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap}.heatmap-strip{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-2)}.heatmap-day{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.heatmap-cell{position:relative;width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--ink-faint);background-color:var(--surface-sunken);border:var(--hairline) solid transparent}.heatmap-strip--week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1);overflow:visible;padding:10px 6px 2px;width:100%;box-sizing:border-box}.heatmap-strip--week .heatmap-day{flex-shrink:1;min-width:0;width:100%;overflow:visible}.heatmap-strip--week .heatmap-cell{width:100%;height:auto;aspect-ratio:1;max-width:44px;margin-inline:auto;overflow:visible;z-index:0}.heatmap-strip--week .heatmap-cell.released{z-index:1}.heatmap-strip--week .heatmap-cell.perfect{background-color:var(--success)!important;color:#fff!important}.heatmap-strip--week .heatmap-cell.completed-imperfect{background-color:var(--success-light)!important;color:var(--ink)!important}.heatmap-strip--week .heatmap-cell.in-progress{background-color:var(--day-in-progress)!important;color:#fff!important}.heatmap-strip--week .heatmap-cell.missed{background-color:var(--danger)!important;color:#fff!important}.heatmap-strip--week .heatmap-cell.idle{background-color:var(--surface-sunken)!important;color:var(--ink-faint)!important}.heatmap-week-card{overflow:visible;margin-bottom:16px}@media (max-width: 380px){.heatmap-week-card.surface-pad{padding-inline:var(--space-3)}}.heatmap-cell.perfect{background-color:var(--success)!important;color:#fff!important}.heatmap-cell.completed-imperfect{background-color:var(--success-light)!important;color:var(--ink)!important}.heatmap-cell.in-progress{background-color:var(--day-in-progress)!important;color:#fff!important}.heatmap-cell.missed{background-color:var(--danger)!important;color:#fff!important}.heatmap-cell.idle{background-color:var(--surface-sunken)!important;color:var(--ink-faint)!important}.heatmap-cell.future{opacity:.5}.heatmap-cell.today{box-shadow:inset 0 0 0 3px var(--ink)}.heatmap-cell.released{box-shadow:inset 0 0 0 3px var(--retroactive)}.heatmap-cell.released.today{box-shadow:inset 0 0 0 3px var(--ink),inset 0 0 0 5px var(--retroactive)}.heatmap-cell.clickable{cursor:pointer;transition:transform var(--motion-quick) var(--ease-settle)}.heatmap-cell.clickable:hover{transform:scale(1.1)}.heatmap-cell.clickable:active{transform:scale(.94)}.heatmap-cell-badge{position:absolute;top:-5px;right:-5px;width:16px;height:16px;border-radius:50%;background:var(--retroactive);color:#fff;display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1;box-shadow:0 0 0 2px var(--surface-raised);z-index:2;pointer-events:none}.heatmap-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-2)}.heatmap-month-weekdays{margin-bottom:var(--space-2)}.heatmap-month-weekday{text-align:center;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--ink-faint)}.heatmap-month-cell{aspect-ratio:1;border-radius:var(--radius-sm);background-color:var(--surface-sunken);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);color:var(--ink-faint)}.heatmap-month-cell.empty{background:transparent}.heatmap-month-cell.perfect{background-color:var(--success)!important;color:#fff!important}.heatmap-month-cell.completed-imperfect{background-color:var(--success-light)!important;color:var(--ink)!important}.heatmap-month-cell.in-progress{background-color:var(--day-in-progress)!important;color:#fff!important}.heatmap-month-cell.missed{background-color:var(--danger)!important;color:#fff!important}.heatmap-month-cell.idle{background-color:var(--surface-sunken)!important;color:var(--ink-faint)!important}.heatmap-month-cell.future{opacity:.5}.heatmap-month-cell.clickable{cursor:pointer;transition:transform var(--motion-quick) var(--ease-settle)}.heatmap-month-cell.clickable:hover{transform:scale(1.1)}.heatmap-month-cell.clickable:active{transform:scale(.94)}.heatmap-month-cell.today{box-shadow:inset 0 0 0 3px var(--ink)}.heatmap-month-cell.released{position:relative;box-shadow:inset 0 0 0 3px var(--retroactive)}.heatmap-month-cell.released.today{box-shadow:inset 0 0 0 3px var(--ink),inset 0 0 0 5px var(--retroactive)}.heatmap-month-cell-badge{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--retroactive);color:#fff;display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1;box-shadow:0 0 0 2px var(--surface-raised)}.date-picker-modes{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.date-picker-mode-btn{padding:6px 14px;border-radius:var(--radius-pill);border:var(--hairline) solid var(--line);background:var(--surface-raised);color:var(--ink-soft);font-size:var(--text-sm);cursor:pointer;transition:transform var(--motion-quick) var(--ease-settle)}.date-picker-mode-btn:hover{transform:scale(1.04)}.date-picker-mode-btn.active{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent)}.date-picker-weekdays{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.date-picker-weekday-btn{width:44px;height:36px;border-radius:var(--radius-sm);border:var(--hairline) solid var(--line);background:var(--surface-raised);color:var(--ink-soft);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;transition:transform var(--motion-quick) var(--ease-settle)}.date-picker-weekday-btn:hover{transform:scale(1.06)}.date-picker-weekday-btn.active{color:var(--ink-on-accent);border-color:transparent}.date-picker-month-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-3);font-weight:var(--weight-medium)}.date-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.date-picker-cell{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);border:none;background-color:var(--surface-sunken);color:var(--ink-faint);font-size:var(--text-xs);display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform var(--motion-quick) var(--ease-settle)}.date-picker-cell.empty{background:transparent}.date-picker-cell.out-of-range{opacity:.35}.date-picker-cell.active{color:var(--ink-on-accent);font-weight:var(--weight-semibold)}.date-picker-cell.interactive:not(.out-of-range){cursor:pointer}.date-picker-cell.interactive:not(.out-of-range):hover{transform:scale(1.1)}.date-picker-cell.interactive:not(.out-of-range):active{transform:scale(.92)}.date-picker-cell.interactive:not(.out-of-range):after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#ffffff80;transform:scale(0);opacity:0;transition:transform .35s var(--ease-glide),opacity .35s var(--ease-glide)}.date-picker-cell.interactive:not(.out-of-range):active:after{transform:scale(1.6);opacity:1;transition:none}.calendar-treatment-badge{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5);border-radius:var(--radius-md);background-color:var(--surface-raised);box-shadow:var(--shadow-card);margin-bottom:0}.dashboard-info-row{display:flex;flex-wrap:wrap;gap:var(--space-5);padding:var(--space-4) 0}.calendar-legend{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-4)}.calendar-legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--ink-soft)}.calendar-legend-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0}.day-detail-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:var(--hairline) solid var(--line)}.day-detail-row:last-child{border-bottom:none}.day-detail-row .chip{justify-content:center;text-align:center}.roster-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:var(--hairline) solid var(--line);cursor:pointer;transition:background var(--motion-quick) var(--ease-glide)}.roster-row:hover{background-color:var(--surface-hover)}.roster-row:last-child{border-bottom:none}.roster-row-meta{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;row-gap:var(--space-2)}.chip-protocol-melasma{background-color:#7a3a101f;color:var(--p-melasma-accent)}.chip-protocol-desinflamacao{background-color:#5d7a581f;color:var(--p-desinf-accent)}@media (max-width: 640px){.roster-row{flex-direction:column;align-items:stretch}.roster-row-meta{justify-content:space-between}.roster-row-info{padding-right:90px}.roster-row-protocol-chip{position:absolute;top:var(--space-4);right:var(--space-5);margin-top:0!important}}.list-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:var(--hairline) solid var(--line)}.list-row:last-child{border-bottom:none}.chip{display:inline-flex;align-items:center;padding:4px 12px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.chip-success{background-color:var(--success-wash);color:var(--success)}.chip-danger{background-color:var(--danger-wash);color:var(--danger)}.chip-warning{background-color:var(--warning-wash);color:var(--warning)}.chip-neutral{background-color:var(--surface-sunken);color:var(--ink-soft)}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 25%,var(--surface-hover) 50%,var(--surface-sunken) 75%);background-size:200% 100%;animation:shimmer 1.6s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.spinner-ink{border:2px solid var(--line-strong);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--ink-faint)}.boot-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);min-height:100vh;min-height:100dvh;background-color:var(--brand-bg);color:var(--brand-on-bg)}.boot-logo{width:96px;height:96px;display:block;border:none;outline:none}.boot-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center}.boot-brand-name{font-family:var(--font-display);font-size:var(--display-sm);font-weight:var(--weight-display);color:var(--brand-on-bg)}.boot-brand-tagline{font-size:var(--text-sm);color:#ffffffb8;letter-spacing:.02em}.boot-status-message{margin-top:var(--space-3);max-width:16rem;font-size:var(--text-sm);line-height:1.4;color:#ffffffd9;text-align:center}.boot-retry-btn{margin-top:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);border:var(--hairline) solid rgba(255,255,255,.35);background:#ffffff1f;color:var(--brand-on-bg);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer}.boot-retry-btn:disabled{opacity:.6;cursor:wait}.boot-retry-btn:not(:disabled):hover{background:#fff3}.spinner-boot{border:2px solid rgba(255,255,255,.3);border-top-color:var(--brand-on-bg)}.route-chunk-fallback{display:flex;align-items:center;justify-content:center;min-height:40vh;padding:var(--space-6)}.route-chunk-fallback .spinner-boot{border-color:#0000001f;border-top-color:var(--ink-soft, #666)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--ink-soft);background-color:var(--surface-raised);border:var(--hairline) solid var(--line);border-radius:var(--radius-pill);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-4);transition:all var(--motion-quick) var(--ease-glide)}.back-link:hover{color:var(--ink);background-color:var(--surface-hover);border-color:var(--line-strong)}.avatar{width:56px;height:56px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:var(--accent);color:var(--ink-on-accent);font-family:var(--font-display);font-size:1.3rem}.status-dot{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium)}.status-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.status-dot.ok{color:var(--success)}.status-dot.warning{color:var(--warning)}.status-dot.danger{color:var(--danger)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-4)}.metric-card{padding:var(--space-4)}.metric-value{font-family:var(--font-display);font-size:var(--display-sm);color:var(--ink);line-height:1.1}.metric-label{font-size:var(--text-xs);color:var(--ink-faint);margin-top:var(--space-1)}.filter-row{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}@media (max-width: 640px){.mobile-stack-center{flex-direction:column;align-items:center;text-align:center}.mobile-title-left{flex-direction:column;align-items:flex-start}.mobile-title-left>.btn{align-self:center}}.quick-actions--column{flex-direction:column;align-items:stretch}.quick-action-btn{justify-content:flex-start;width:100%;border-radius:var(--radius-md);background-color:var(--surface-raised);border:var(--hairline) solid var(--line);padding:var(--space-3) var(--space-4)}.quick-action-btn:hover:not(:disabled){background-color:var(--surface-hover);border-color:var(--line-strong)}@media (max-width: 640px){.admin-search-input{max-width:100%!important;width:100%}.calendar-legend{flex-direction:column;align-items:flex-start}}.timeline-day-row{display:flex;align-items:center;gap:var(--space-3);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--motion-quick) var(--ease-glide)}.timeline-day-row:hover{background-color:var(--surface-hover)}.timeline-day-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.timeline-day-dot.perfect{background:var(--success)}.timeline-day-dot.completed-imperfect{background:var(--success-light)}.timeline-day-dot.in-progress{background:var(--day-in-progress)}.timeline-day-dot.missed{background:var(--danger)}.timeline-day-dot.idle{background:var(--surface-sunken)}.timeline-day-dot.future{background:var(--line-strong)}.timeline-day-label{flex:1;font-size:var(--text-sm)}.timeline-day-detail{padding:var(--space-3) var(--space-2) var(--space-4) calc(10px + var(--space-3))}.heatmap-strip-large{display:grid;grid-template-columns:repeat(15,1fr);gap:4px}@media (min-width: 640px){.heatmap-strip-large{grid-template-columns:repeat(30,1fr)}}.heatmap-square{aspect-ratio:1;border-radius:3px;background:var(--surface-sunken)}.heatmap-square.perfect{background:var(--success)!important}.heatmap-square.completed-imperfect{background:var(--success-light)!important}.heatmap-square.in-progress{background:var(--day-in-progress)!important}.heatmap-square.missed{background:var(--danger)!important}.heatmap-square.idle{background:var(--surface-sunken)!important}.heatmap-square.future{background:transparent;border:1px dashed var(--line)}.alert-card{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:var(--warning-wash)}.alert-card.danger{background:var(--danger-wash)}.alert-icon{font-size:1.1rem;line-height:1}.retroactive-card{background:var(--retroactive-wash);border:var(--hairline) solid rgba(37,99,235,.25);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:10px;margin-bottom:10px}.retroactive-card-title{display:flex;align-items:center;gap:var(--space-2);color:var(--retroactive);font-weight:var(--weight-semibold);margin-bottom:var(--space-2)}.retroactive-card-countdown{font-weight:var(--weight-semibold);color:var(--retroactive)}.chip-retroactive{background-color:var(--retroactive-wash);color:var(--retroactive)}.retroactive-entry{border-top:var(--hairline) solid rgba(37,99,235,.2);padding-top:var(--space-3);margin-top:var(--space-3)}.retroactive-entry:first-of-type{border-top:none;padding-top:0;margin-top:0}.retroactive-entry-header{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:none;padding:var(--space-2) 0;cursor:pointer;font-family:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--retroactive)}.retroactive-entry-date{font-weight:var(--weight-semibold)}.retroactive-entry-body{padding-top:var(--space-2)}.push-optin-card{background-color:var(--surface-raised);border:var(--hairline) solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-5);box-shadow:var(--shadow-card)}.push-optin-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--ink-on-accent);font-size:1.25rem;margin-bottom:var(--space-3);background-color:var(--accent)}.push-bell-btn.attention{position:relative}.push-bell-btn.attention:after{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--warning);box-shadow:0 0 0 2px var(--surface-raised)}.push-center{display:flex;flex-direction:column;gap:var(--space-4)}.push-center-banner{padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface-sunken)}.push-center-banner.active{background:var(--success-wash)}.push-center-banner.denied{background:var(--danger-wash)}.push-status-list{display:flex;flex-direction:column;gap:var(--space-3)}.push-status-row{display:flex;gap:var(--space-3);align-items:flex-start}.push-status-dot{width:10px;height:10px;border-radius:50%;margin-top:6px;flex-shrink:0;background:var(--line-strong)}.push-status-dot.ok{background:var(--success)}.push-status-dot.bad{background:var(--warning)}.push-settings-hint{padding:var(--space-4);border-radius:var(--radius-md);border:var(--hairline) solid var(--line);background:var(--surface)}.push-settings-steps{padding-left:1.2rem;display:flex;flex-direction:column;gap:var(--space-1)}.push-verify-result{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);border:var(--hairline) solid var(--line)}.push-verify-result.ok{background:var(--success-wash);border-color:transparent;color:var(--success)}.push-verify-result.bad{background:var(--warning-wash);border-color:transparent;color:var(--warning)}.push-verify-result .body-sm{color:inherit}.push-diag-row{display:flex;justify-content:space-between;gap:var(--space-4);align-items:baseline;padding:var(--space-3) 0;border-bottom:var(--hairline) solid var(--line)}.push-diag-row:last-child{border-bottom:none}.push-diag-value{font-size:var(--text-sm);color:var(--ink);text-align:right;word-break:break-all}.push-diag-value.ok{color:var(--success);font-weight:var(--weight-semibold)}.push-diag-value.bad{color:var(--danger);font-weight:var(--weight-semibold)}.note-card{padding:var(--space-4);border-radius:var(--radius-md);border:var(--hairline) solid var(--line);background:var(--surface-raised)}.note-type-tag{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.btn:focus-visible,a:focus-visible,button:focus-visible,.rail-link:focus-visible,.pill-nav-item:focus-visible,.tab-item:focus-visible,.roster-row:focus-visible,.timeline-day-row:focus-visible,.heatmap-month-cell.clickable:focus-visible,.dose-check:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}@media print{.rail,.pill-nav,.canvas-topbar,.back-link,.no-print,.sheet-overlay,.sheet,[role=dialog]{display:none!important}.canvas-content{max-width:100%!important;padding:0!important}body{background:#fff!important}}.tab-bar{display:flex;gap:var(--space-5);border-bottom:var(--hairline) solid var(--line);margin-bottom:var(--space-6);overflow-x:auto}.tab-item{background:none;border:none;cursor:pointer;white-space:nowrap;padding:var(--space-3) var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--ink-faint);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--motion-quick) var(--ease-glide)}.tab-item.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:var(--weight-semibold)}.tab-item:hover{color:var(--ink)}.quick-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.gauge-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.gauge-center{position:absolute;display:flex;flex-direction:column;align-items:center;top:58%;transform:translateY(-50%)}.index-breakdown-row{display:flex;align-items:center;gap:var(--space-3)}.index-breakdown-label{flex:0 0 140px;font-size:var(--text-xs);color:var(--ink-soft)}.index-breakdown-track{flex:1;height:6px;border-radius:var(--radius-pill);background:var(--surface-sunken);overflow:hidden}.index-breakdown-fill{height:100%;border-radius:var(--radius-pill);background:var(--accent)}.index-breakdown-value{flex:0 0 36px;text-align:right;font-size:var(--text-xs);font-weight:var(--weight-semibold)}.risk-badge{display:inline-flex;align-items:center;padding:6px 16px;border-radius:var(--radius-pill);font-weight:var(--weight-semibold);font-size:var(--text-sm)}.risk-badge--success{background-color:var(--success-wash);color:var(--success)}.risk-badge--warning{background-color:var(--warning-wash);color:var(--warning)}.risk-badge--danger{background-color:var(--danger-wash);color:var(--danger)}.consistency-row{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-3)}.consistency-label{flex:0 0 70px;font-size:var(--text-sm);font-weight:var(--weight-medium)}.consistency-track{flex:1;height:10px;border-radius:var(--radius-pill);background:var(--surface-sunken);overflow:hidden}.consistency-fill{height:100%;border-radius:var(--radius-pill)}.consistency-value{flex:0 0 44px;text-align:right;font-size:var(--text-sm)}.summary-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media (min-width: 768px){.summary-grid{grid-template-columns:repeat(2,1fr)}}.summary-item-label{font-size:var(--text-xs);color:var(--ink-faint)}.summary-item-value{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--ink);margin-top:2px}.record-day{padding:var(--space-4) 0;border-bottom:var(--hairline) solid var(--line)}.record-day:last-child{border-bottom:none}.record-event{display:flex;gap:var(--space-2);align-items:flex-start;font-size:var(--text-sm);padding:var(--space-2) 0}.record-event-icon{flex-shrink:0}
