:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#0b0d14;--bg-secondary:#0e1119;--surface-color:#12151f;--surface-color-light:#1a1e2c;--surface-hover:#202435;--surface-raised:#161a28;--input-bg:#0f121b;--input-border:#ffffff17;--input-border-focus:var(--primary);--bg-color:var(--bg-primary);--primary:#2de0bc;--primary-light:#56efd1;--primary-dark:#1fbf9f;--primary-rgb:45, 224, 188;--primary-gradient:linear-gradient(135deg, #2de0bc 0%, #53b8ff 100%);--primary-gradient-hover:linear-gradient(135deg, #56efd1 0%, #7ccbff 100%);--secondary:#ffb454;--secondary-rgb:255, 180, 84;--warning:#ffb454;--warning-rgb:255, 180, 84;--danger:#ff6e62;--danger-rgb:255, 110, 98;--success:#4ade80;--success-rgb:74, 222, 128;--info:#53b8ff;--info-rgb:83, 184, 255;--planned:#8b7cf6;--planned-rgb:139, 124, 246;--text-primary:#f4f6fb;--text-secondary:#9aa0b5;--text-tertiary:#7a83a0;--text-on-primary:#06231c;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Consolas, monospace;--font-size-xs:11px;--font-size-sm:13px;--font-size-base:15px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:22px;--font-size-2xl:28px;--font-size-3xl:34px;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.6;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-xs:4px;--radius-sm:8px;--radius-md:14px;--radius-lg:18px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 2px #00000059;--shadow-md:0 4px 14px #00000073;--shadow-lg:0 12px 32px #0000008c;--shadow-xl:0 20px 50px #0009;--shadow-glow:0 0 18px rgba(var(--primary-rgb), .35), 0 0 48px rgba(var(--primary-rgb), .12);--shadow-glow-sm:0 0 10px rgba(var(--primary-rgb), .28);--glass-bg:#12151fdb;--glass-bg-strong:#12151ff0;--glass-border:#ffffff12;--glass-border-light:#ffffff1f;--glass-blur:10px;--glass-blur-strong:16px;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);--safe-area-right:env(safe-area-inset-right,0px);--nav-height:68px;--header-padding:max(var(--space-5), var(--safe-area-top));--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{background-color:var(--bg-primary);height:100%;overflow:hidden}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background-image:radial-gradient(600px circle at 15% -5%, rgba(var(--primary-rgb), .07), transparent 60%);width:100%;height:100%;overflow:hidden}#app{flex-direction:column;width:100%;height:100%;display:flex;position:relative}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:var(--line-height-tight);letter-spacing:-.02em}h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold)}h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-md)}p{color:var(--text-secondary);line-height:var(--line-height-relaxed)}a{color:var(--primary);transition:opacity var(--duration-fast) var(--ease-smooth);text-decoration:none}a:active{opacity:.7}small{color:var(--text-secondary);font-size:var(--font-size-sm)}.mono,[data-mono],.num,.dose-amount,.dose-mcg,.supply-quantity{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface-color-light);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}::selection{background:rgba(var(--primary-rgb), .3);color:var(--text-primary)}@media (width>=769px){body{background-image:radial-gradient(700px circle at 30% -5%, rgba(var(--primary-rgb), .06), transparent 60%);justify-content:center;display:flex}#app{border-left:1px solid var(--glass-border);border-right:1px solid var(--glass-border);max-width:480px;box-shadow:0 0 80px #0000004d}}@media (width>=1024px){#app{max-width:520px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}html{scroll-behavior:auto!important}}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-full);font-family:var(--font-family);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);cursor:pointer;letter-spacing:-.01em;min-width:44px;min-height:44px;transition:transform var(--duration-fast) var(--ease-spring), box-shadow var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth), opacity var(--duration-fast);-webkit-user-select:none;user-select:none;border:none;outline:none;padding:12px 22px;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";transition:background var(--duration-fast);border-radius:inherit;pointer-events:none;background:#fff0;position:absolute;inset:0}.btn:hover:after{background:#ffffff0f}.btn:active{transform:scale(.95)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--primary-gradient);color:var(--text-on-primary);box-shadow:var(--shadow-glow-sm)}.btn-primary:hover{background:var(--primary-gradient-hover);box-shadow:var(--shadow-glow)}.btn-primary:active{box-shadow:0 0 8px rgba(var(--primary-rgb), .3)}.btn-secondary{background:var(--surface-color-light);color:var(--text-primary);border:1px solid var(--glass-border-light)}.btn-secondary:hover{background:var(--surface-hover);border-color:#ffffff26}.btn-ghost{color:var(--text-secondary);background:0 0;padding:8px 14px}.btn-ghost:hover{color:var(--text-primary);background:#ffffff0a}.btn-ghost[title=Refresh][style*="opacity: 0.5"]{color:var(--primary);animation:.8s linear infinite refreshSpin;opacity:1!important}@keyframes refreshSpin{to{transform:rotate(360deg)}}.btn-danger{background:rgba(var(--danger-rgb), .15);color:var(--danger);border:1px solid rgba(var(--danger-rgb), .3)}.btn-danger:hover{background:rgba(var(--danger-rgb), .25)}.btn-outline{color:var(--primary);border:1.5px solid rgba(var(--primary-rgb), .4);background:0 0}.btn-outline:hover{background:rgba(var(--primary-rgb), .08);border-color:rgba(var(--primary-rgb), .6)}.btn-large{width:100%;font-size:var(--font-size-lg);border-radius:var(--radius-md);padding:16px}.btn-sm{font-size:var(--font-size-sm);min-height:36px;font-weight:var(--font-weight-medium);padding:6px 14px}.card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-3);transition:transform var(--duration-fast) var(--ease-spring), box-shadow var(--duration-normal) var(--ease-smooth), border-color var(--duration-normal);position:relative;overflow:hidden}.card:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff14 30% 70%,#0000 100%);height:1px;position:absolute;top:0;left:0;right:0}.card:active{transform:scale(.985)}.card h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1)}.card h4{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.card--accent{border-color:rgba(var(--primary-rgb), .2);box-shadow:inset 0 0 30px rgba(var(--primary-rgb), .03)}.card-divider{background:var(--glass-border-light);height:1px;margin:var(--space-4) 0;border:none}.bottom-nav{height:var(--nav-height);-webkit-backdrop-filter:blur(var(--glass-blur-strong));border-top:1px solid var(--glass-border);z-index:100;background:#0a0a0fe0;justify-content:space-around;align-items:center;padding-bottom:4px;display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=769px){.bottom-nav{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-left:1px solid var(--glass-border);border-right:1px solid var(--glass-border);max-width:480px;left:50%;transform:translate(-50%)}}@media (width>=1024px){.bottom-nav{max-width:520px}}.nav-item{color:var(--text-tertiary);min-height:48px;transition:color var(--duration-normal) var(--ease-smooth);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:2px 0;text-decoration:none;display:flex;position:relative}.nav-item .icon{transition:transform var(--duration-normal) var(--ease-spring);margin-bottom:0;font-size:22px;line-height:1}.nav-item .label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.02em}.nav-item.active{color:var(--primary)}.nav-item.active .icon{filter:drop-shadow(0 0 6px rgba(var(--primary-rgb), .5));transform:scale(1.1)}.nav-item.active:after{content:"";background:var(--primary);border-radius:var(--radius-full);width:4px;height:4px;box-shadow:0 0 6px rgba(var(--primary-rgb), .6);position:absolute;bottom:0;left:50%;transform:translate(-50%)}.form-group{margin-bottom:var(--space-4)}.form-group label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-bottom:var(--space-2);letter-spacing:.02em;text-transform:uppercase;display:block}.form-control{background:var(--input-bg);border:1.5px solid var(--input-border);width:100%;color:var(--text-primary);border-radius:var(--radius-sm);padding:12px var(--space-4);font-family:var(--font-family);font-size:var(--font-size-md);font-weight:var(--font-weight-normal);min-height:48px;transition:border-color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-smooth), background var(--duration-normal);appearance:none;outline:none}.form-control::placeholder{color:var(--text-tertiary)}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb), .12);background:#12121fe6}select.form-control{background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%238B8B9E' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:40px}.rating-btn{border:2px solid var(--glass-border-light);background:var(--surface-color-light);width:36px;height:36px;color:var(--text-secondary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);cursor:pointer;transition:all var(--duration-fast);-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.rating-btn--active{background:var(--primary-gradient);color:var(--text-on-primary);box-shadow:var(--shadow-glow-sm);border-color:#0000;transform:scale(1.05)}.rating-btn:active{transform:scale(.9)}.color-picker-grid{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(6,1fr);display:grid}.color-swatch{aspect-ratio:1;cursor:pointer;transition:transform var(--duration-fast), border-color var(--duration-fast);border:2px solid #0000;border-radius:50%;box-shadow:0 2px 4px #0003}.color-swatch.active{border-color:var(--text-primary);transform:scale(1.15);box-shadow:0 0 8px #fff6}.color-swatch:hover{transform:scale(1.1)}.progress-bar-container{background:var(--surface-color-light);border-radius:var(--radius-full);width:100%;height:6px;margin-top:8px;overflow:hidden}.progress-bar-fill{background:var(--primary-gradient);border-radius:var(--radius-full);height:100%;transition:width var(--duration-slow) var(--ease-out)}.progress-bar-fill.danger{background:var(--danger);box-shadow:0 0 8px rgba(var(--danger-rgb), .4)}.progress-bar-striped{border-radius:var(--radius-full);height:100%;transition:width var(--duration-slow) var(--ease-out);background-image:repeating-linear-gradient(45deg,#ffffff26 0 10px,#ffffff0d 10px 20px);background-size:28px 28px;animation:2s linear infinite progressStripes}@keyframes progressStripes{0%{background-position:0 0}to{background-position:28px 0}}.weight-entry{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--glass-border-light);transition:background var(--duration-fast);justify-content:space-between;align-items:center;display:flex}.weight-entry:hover{background:#ffffff05}.weight-entry .delete-weight-btn{opacity:0;transition:all var(--duration-fast);color:var(--danger);transform:translate(10px)}.weight-entry:hover .delete-weight-btn{opacity:1;transform:translate(0)}@media (hover:none){.weight-entry .delete-weight-btn{opacity:1;transform:translate(0)}}textarea.form-control{resize:vertical;min-height:80px;line-height:var(--line-height-relaxed)}input[type=date].form-control::-webkit-calendar-picker-indicator{filter:invert()brightness(.7);cursor:pointer}input[type=range].form-control{appearance:none;background:0 0;border:none;min-height:44px;padding:0}input[type=range].form-control::-webkit-slider-runnable-track{background:var(--surface-color-light);border-radius:var(--radius-full);width:100%;height:6px}input[type=range].form-control::-webkit-slider-thumb{-webkit-appearance:none;background:var(--primary-gradient);cursor:pointer;width:22px;height:22px;box-shadow:var(--shadow-glow-sm);border:2px solid #fff3;border-radius:50%;margin-top:-8px}input[type=range]:focus{box-shadow:none}input[type=checkbox]{appearance:none;background:var(--input-bg);border:2px solid var(--input-border);border-radius:var(--radius-xs);cursor:pointer;vertical-align:middle;width:22px;height:22px;margin-right:var(--space-2);transition:background var(--duration-fast), border-color var(--duration-fast), transform var(--duration-fast) var(--ease-spring);flex-shrink:0;position:relative}input[type=checkbox]:checked{background:var(--primary-gradient);animation:checkboxPop .3s var(--ease-spring);border-color:#0000}input[type=checkbox]:checked:after{content:"";border:2.5px solid #000;border-width:0 2.5px 2.5px 0;width:7px;height:12px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}input[type=checkbox]:active{transform:scale(.9)}.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:1000;animation:overlayFadeIn .25s var(--ease-smooth) forwards;background:#0000008c;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-content.bottom-sheet{background:var(--surface-color);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);width:100%;padding:var(--space-6);padding-bottom:calc(var(--space-8) + var(--safe-area-bottom));max-height:92vh;box-shadow:var(--shadow-xl);animation:bottomSheetSlideUp .4s var(--ease-out) forwards;position:relative;overflow-y:auto}.modal-content.bottom-sheet:before{content:"";border-radius:var(--radius-full);width:36px;height:4px;margin:0 auto var(--space-5);background:#ffffff26;display:block}.modal-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.modal-header h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.btn-close{background:var(--surface-color-light);border:1px solid var(--glass-border-light);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-full);width:36px;height:36px;transition:all var(--duration-fast);justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex}.btn-close:hover{background:var(--surface-hover);color:var(--text-primary)}.modal-icon-container{margin-bottom:var(--space-4);justify-content:center;align-items:center;display:flex}.modal-icon{background:rgba(var(--secondary-rgb), .1);border:2px solid rgba(var(--secondary-rgb), .3);width:64px;height:64px;box-shadow:0 0 20px rgba(var(--secondary-rgb), .15);border-radius:50%;justify-content:center;align-items:center;font-size:32px;display:flex}.modal-icon.danger{background:rgba(var(--danger-rgb), .1);border-color:rgba(var(--danger-rgb), .3);box-shadow:0 0 20px rgba(var(--danger-rgb), .15)}.modal-footer{gap:var(--space-3);margin-top:var(--space-6);display:flex}.modal-footer .btn{border-radius:var(--radius-md);flex:1}.badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;align-items:center;padding:3px 10px;line-height:1.4;display:inline-flex}.badge-primary{background:rgba(var(--primary-rgb), .15);color:var(--primary)}.badge-blend{background:var(--primary-gradient);color:var(--text-on-primary)}.badge-time{background:var(--surface-color-light);color:var(--text-secondary);border:1px solid var(--glass-border-light)}.badge-warning{background:rgba(var(--secondary-rgb), .12);color:var(--secondary);border:1px solid rgba(var(--secondary-rgb), .2)}.badge-danger{background:rgba(var(--danger-rgb), .12);color:var(--danger);border:1px solid rgba(var(--danger-rgb), .2)}.badge-success{background:rgba(var(--success-rgb), .12);color:var(--success)}.empty-state{text-align:center;padding:var(--space-12) var(--space-5);color:var(--text-secondary)}.empty-state .icon{margin-bottom:var(--space-4);opacity:.4;filter:grayscale(.3);font-size:56px;display:block}.empty-state p{font-size:var(--font-size-base);line-height:var(--line-height-relaxed);max-width:280px;margin:0 auto}.skeleton{background:linear-gradient(90deg, var(--surface-color) 25%, var(--surface-color-light) 50%, var(--surface-color) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite skeletonShimmer}.skeleton-text{height:14px;margin-bottom:var(--space-2)}.skeleton-card{height:80px;margin-bottom:var(--space-4);border-radius:var(--radius-md)}.toast-container{top:calc(var(--safe-area-top) + var(--space-4));left:var(--space-4);right:var(--space-4);z-index:2000;gap:var(--space-2);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--glass-blur-strong));border:1px solid var(--glass-border-light);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-lg);animation:toastSlideIn .4s var(--ease-out) forwards;pointer-events:auto;align-items:center;gap:var(--space-2);display:flex}.toast-success{border-left:3px solid var(--success)}.toast-error{border-left:3px solid var(--danger)}.toast-info{border-left:3px solid var(--primary)}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.text-primary{color:var(--text-primary)!important}.text-secondary{color:var(--text-secondary)!important}.text-tertiary{color:var(--text-tertiary)!important}.text-accent{color:var(--primary)!important}.text-danger{color:var(--danger)!important}.text-success{color:var(--success)!important}.text-warning{color:var(--secondary)!important}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.w-full{width:100%}.text-center{text-align:center}.text-right{text-align:right}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.float-anim{animation:3s ease-in-out infinite float}@keyframes slideDownFade{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:1000px;transform:translateY(0)}}.slide-down-fade{animation:slideDownFade .4s var(--ease-out) forwards}@keyframes pulseHighlight{0%{box-shadow:0 0 0 0 rgba(var(--primary-rgb), .7)}70%{box-shadow:0 0 0 10px rgba(var(--primary-rgb), 0)}to{box-shadow:0 0 0 0 rgba(var(--primary-rgb), 0)}}.pulse-anim{animation:2s infinite pulseHighlight}.view-container{padding:var(--space-5);padding-top:calc(var(--header-padding) + var(--space-3));padding-bottom:calc(var(--nav-height) + var(--space-5));-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scroll-behavior:smooth;flex:1;overflow:hidden auto}.ptr-indicator{text-align:center;height:0;transition:height .3s var(--ease-spring);color:var(--primary);font-size:var(--font-size-sm);justify-content:center;align-items:center;gap:var(--space-2);display:flex;overflow:hidden}.ptr-indicator.ptr-visible{height:60px}.ptr-indicator .spinner{border:2px solid rgba(var(--primary-rgb), .3);border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite ptrSpin;display:inline-block}@keyframes ptrSpin{to{transform:rotate(360deg)}}.login-screen{padding:var(--space-10) var(--space-5);background:radial-gradient(ellipse 60% 40% at 50% 35%, rgba(var(--primary-rgb), .06) 0%, transparent 70%);flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:100dvh;display:flex}.login-screen .logo{text-align:center;margin-bottom:var(--space-12)}.login-screen .logo .icon{margin-bottom:var(--space-4);filter:drop-shadow(0 0 30px rgba(var(--primary-rgb), .25));font-size:80px;animation:4s ease-in-out infinite floatIcon;display:block}.login-screen .logo h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);background:var(--primary-gradient);-webkit-text-fill-color:transparent;margin-bottom:var(--space-2);letter-spacing:-.03em;-webkit-background-clip:text;background-clip:text}.login-screen .logo p{font-size:var(--font-size-base);color:var(--text-secondary);font-weight:var(--font-weight-light);letter-spacing:.04em}.login-screen .btn-primary{width:100%;max-width:320px;font-size:var(--font-size-lg);border-radius:var(--radius-md);padding:16px}.login-screen .setup-notice{margin-top:var(--space-10);padding:var(--space-4);background:rgba(var(--secondary-rgb), .06);border:1px solid rgba(var(--secondary-rgb), .15);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center;max-width:380px;line-height:var(--line-height-relaxed)}.view-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.view-header h2{font-size:var(--font-size-2xl);letter-spacing:-.03em}.view-header h3{font-size:var(--font-size-lg);color:var(--text-primary)}.view-subtitle{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--space-1);font-weight:var(--font-weight-normal)}.date-nav{align-items:center;gap:var(--space-2);margin-top:var(--space-1);display:flex}.date-nav-arrow{min-width:36px;min-height:36px;font-size:var(--font-size-md);padding:4px 8px!important}.date-nav-label{color:var(--text-secondary);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--duration-fast);white-space:nowrap;background:0 0;border:none;padding:4px 8px}.date-nav-label:hover{background:#ffffff0a}.date-picker-hidden{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.past-day-badge{margin-top:var(--space-2);display:inline-block}.dose-card{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.dose-card-info{flex:1;min-width:0}.dose-card-info h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;margin-bottom:1px}.dose-card-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--text-secondary);flex-wrap:wrap;display:flex}.dose-amount{font-family:var(--font-mono);font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-size-sm)}.dose-mcg{font-family:var(--font-mono);color:var(--text-secondary);font-size:var(--font-size-xs)}.dose-card .btn{flex-shrink:0;min-width:88px}.dose-card .btn-taken{background:rgba(var(--success-rgb), .12);color:var(--success);border:1px solid rgba(var(--success-rgb), .2);pointer-events:none}.quick-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.quick-actions .btn{font-size:var(--font-size-xs);gap:var(--space-1);padding:6px 12px}.compound-card-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.compound-card-header h3{font-size:var(--font-size-lg)}.compound-card-header .short-name{color:var(--text-tertiary);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal)}.compound-protocol{font-size:var(--font-size-sm);color:var(--text-secondary);padding:var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:#ffffff05}.compound-protocol strong{color:var(--text-primary);font-weight:var(--font-weight-medium)}.compound-divider{margin:var(--space-4) 0;background:var(--glass-border-light);border:none;height:1px}.compound-notes{min-height:60px;font-size:var(--font-size-sm)!important;background:#12121f99!important}.inventory-group-header{margin-top:var(--space-5);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid rgba(var(--primary-rgb), .15);align-items:center;gap:var(--space-2);display:flex}.inventory-group-header h3{color:var(--primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);letter-spacing:-.01em}.inventory-group-header .count-badge{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-tertiary);background:var(--surface-color-light);border-radius:var(--radius-full);padding:2px 8px}.inventory-card{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.inventory-card h4{font-family:var(--font-mono);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.inventory-card-meta{font-size:var(--font-size-sm);color:var(--text-secondary)}.supply-card{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.supply-quantity{font-family:var(--font-mono);font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);color:var(--text-primary)}.supply-unit{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:var(--font-weight-normal);margin-left:var(--space-1)}.chart-container{width:100%;height:200px;padding:var(--space-2) 0;position:relative}.chart-container canvas{width:100%!important;height:100%!important}.section-label{font-size:var(--font-size-sm);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}.journal-card{margin-bottom:var(--space-3)}.journal-card h4{font-size:var(--font-size-base);margin-bottom:var(--space-2);font-weight:var(--font-weight-semibold)}.journal-metrics{gap:var(--space-4);font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.journal-metrics span{align-items:center;gap:4px;display:inline-flex}.journal-crash-warning{color:var(--danger);font-size:var(--font-size-xs);margin-bottom:var(--space-2);align-items:center;gap:var(--space-1);display:flex}.journal-notes{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--text-secondary)}.heatmap-container{text-align:center;color:var(--text-secondary);padding:var(--space-3) 0;font-size:var(--font-size-sm)}.heatmap-day{aspect-ratio:1;border-radius:var(--radius-xs);transition:transform var(--duration-fast), box-shadow var(--duration-fast);cursor:pointer}.heatmap-day:hover{box-shadow:0 0 8px rgba(var(--primary-rgb), .4);z-index:1;transform:scale(1.15)}.heatmap-day:active{transform:scale(.95)}.cycle-history-group{margin-bottom:var(--space-5);border:1px solid var(--glass-border-light);border-radius:var(--radius-md);padding:var(--space-4);background:#ffffff05}.cycle-history-header{margin-bottom:var(--space-3);align-items:center;gap:var(--space-2);display:flex}.cycle-history-header h4{font-size:var(--font-size-md);color:var(--primary);letter-spacing:-.01em}.cycle-history-list{gap:var(--space-2);flex-direction:column;display:flex}.cycle-history-item{padding:var(--space-3);background:var(--surface-color-light);border-radius:var(--radius-sm);transition:background var(--duration-fast);border:1px solid #0000;justify-content:space-between;align-items:center;display:flex}.cycle-history-item.current{background:rgba(var(--primary-rgb), .06);border-color:rgba(var(--primary-rgb), .2)}.cycle-title{font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-size-sm)}.cycle-dates{align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--text-secondary);display:flex}.cycle-duration{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-tertiary);border-radius:var(--radius-sm);background:#0003;padding:4px 8px}.cycle-raw-events{margin-top:var(--space-3)}.cycle-raw-events summary{padding:var(--space-2) 0;cursor:pointer;color:var(--text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;border-top:1px dashed var(--glass-border-light);transition:color var(--duration-fast);justify-content:space-between;align-items:center;display:flex}.cycle-raw-events summary:hover{color:var(--text-primary)}.cycle-raw-events summary::-webkit-details-marker{display:none}.cycle-raw-events[open] summary .icon{transform:rotate(180deg)}.cycle-raw-events-content{margin-top:var(--space-2);padding:var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--glass-border-light);background:#0003}.raw-event-item{padding:var(--space-2) 0;border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;display:flex}.raw-event-item:last-child{border-bottom:none;padding-bottom:0}.raw-event-info{align-items:center;gap:var(--space-2);display:flex}.raw-event-date{font-size:var(--font-size-xs);color:var(--text-tertiary)}.raw-event-actions{gap:var(--space-1);display:flex}.dose-history-item{padding:var(--space-2) 0;border-bottom:1px solid var(--glass-border-light);transition:background var(--duration-fast);justify-content:space-between;align-items:center;display:flex}.dose-history-item:hover{background:#ffffff05}.dose-history-item:last-child{border-bottom:none}.weight-val{font-family:var(--font-mono);font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);color:var(--text-primary)}.order-card{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.order-card h4{font-size:var(--font-size-base);margin-bottom:2px}.order-meta{font-size:var(--font-size-xs);color:var(--text-secondary)}.order-cost{font-family:var(--font-mono);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--primary)}.chart-timeframe-toggle{gap:4px;display:flex}.timeframe-btn{color:var(--text-secondary);border-radius:var(--radius-full);font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:1px solid var(--glass-border-light);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth);background:0 0;min-height:28px;padding:4px 12px}.timeframe-btn:hover{background:#ffffff0a;border-color:#ffffff26}.timeframe-btn.active{background:rgba(var(--primary-rgb), .12);color:var(--primary);border-color:rgba(var(--primary-rgb), .3)}.settings-row{padding:var(--space-4) 0;justify-content:space-between;align-items:center;display:flex}.settings-row+.settings-row{border-top:1px solid var(--glass-border)}.settings-label{flex-direction:column;gap:2px;display:flex}.settings-label strong{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary)}.settings-label span{font-size:var(--font-size-xs);color:var(--text-secondary)}.section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-3);margin-top:var(--space-8);color:var(--text-primary)}.section-title:first-child{margin-top:0}.cycle-summary{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.cycle-badge{align-items:center;gap:var(--space-2);border:1px solid var(--glass-border-light);border-radius:var(--radius-full);font-size:var(--font-size-xs);background:#ffffff08;padding:4px 10px;display:flex}.cycle-badge-name{color:var(--text-primary);font-weight:var(--font-weight-medium);white-space:nowrap}.cycle-badge-label{color:var(--text-secondary);font-family:var(--font-mono);white-space:nowrap}.cycle-badge-bar{background:var(--surface-color-light);border-radius:var(--radius-full);width:40px;height:4px;overflow:hidden}.cycle-badge-fill{border-radius:var(--radius-full);height:100%;transition:width var(--duration-slow) var(--ease-out)}.cycle-alert-banner{justify-content:space-between;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-2);animation:fadeIn .3s var(--ease-out);display:flex}.cycle-alert-content{gap:var(--space-2);font-size:var(--font-size-sm);line-height:var(--line-height-normal);flex:1;align-items:flex-start;display:flex}.cycle-alert-dismiss{color:var(--text-tertiary);font-size:var(--font-size-lg);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;line-height:1}.cycle-alert-dismiss:hover{color:var(--text-primary)}.compound-color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.compound-card-summary{cursor:pointer}.compound-expandable{transition:max-height var(--duration-slow) var(--ease-out)}.accordion-header{margin-top:var(--space-8);margin-bottom:var(--space-3);cursor:pointer;justify-content:space-between;align-items:center;display:flex}.accordion-body.collapsed{display:none}.cycle-timeline-row{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--glass-border-light)}.cycle-timeline-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.cycle-timeline-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.cycle-compound-title{align-items:center;gap:8px;display:flex}.cycle-compound-title strong{color:var(--text-primary);font-size:1.05rem}.cycle-compound-title.off-cycle strong{color:var(--text-secondary)}.cycle-progress-label{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.cycle-progress-label.off-cycle{color:var(--text-secondary)}.cycle-meta-row{justify-content:space-between;align-items:flex-end;margin-top:4px;display:flex}.cycle-meta-info{flex-direction:column;gap:2px;display:flex}.cycle-timeline-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-weekday{text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);padding:var(--space-2) 0;text-transform:uppercase}#cal-days-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px;display:flex;position:relative}.calendar-day:hover{background:#ffffff0a}.calendar-day--today{border:2px solid var(--primary);box-shadow:0 0 8px rgba(var(--primary-rgb), .3)}.calendar-day--outside{pointer-events:none}.calendar-day--empty .calendar-day-num{color:var(--text-tertiary)}.calendar-day-num{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);line-height:1}.calendar-dots{flex-wrap:wrap;justify-content:center;gap:2px;min-height:6px;display:flex}.calendar-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.calendar-dot-overflow{color:var(--text-tertiary);font-size:8px;line-height:1}.log-item-card{background:var(--surface-color-light);border:1px solid var(--glass-border-light);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-2);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.log-item-card.missed{opacity:.6;background:#0003;border-style:dashed}.log-item-card.missed .log-item-name{text-decoration:line-through}.log-item-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes bottomSheetSlideUp{0%{opacity:0;transform:translateY(100%)}60%{opacity:1;transform:translateY(-3%)}80%{transform:translateY(1%)}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes checkboxPop{0%{transform:scale(1)}40%{transform:scale(1.2)}70%{transform:scale(.92)}to{transform:scale(1)}}@keyframes skeletonShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes floatIcon{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulseRing{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes breatheGlow{0%,to{box-shadow:0 0 20px rgba(var(--primary-rgb), .25)}50%{box-shadow:0 0 35px rgba(var(--primary-rgb), .4)}}@keyframes numberFlash{0%{color:var(--primary-light);transform:scale(1.05)}to{color:var(--text-primary);transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes cardEntrance{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.fade-in{animation:fadeIn .4s var(--ease-out) both}.scale-in{animation:scaleIn .35s var(--ease-out) both}.slide-in-right{animation:slideInRight .35s var(--ease-out) both}.stagger-enter>.card:first-child{animation:cardEntrance .4s var(--ease-out) 50ms both}.stagger-enter>.card:nth-child(2){animation:cardEntrance .4s var(--ease-out) .1s both}.stagger-enter>.card:nth-child(3){animation:cardEntrance .4s var(--ease-out) .15s both}.stagger-enter>.card:nth-child(4){animation:cardEntrance .4s var(--ease-out) .2s both}.stagger-enter>.card:nth-child(5){animation:cardEntrance .4s var(--ease-out) .25s both}.stagger-enter>.card:nth-child(n+6){animation:cardEntrance .4s var(--ease-out) .3s both}.glow{box-shadow:var(--shadow-glow);animation:3s ease-in-out infinite breatheGlow}.pulse{position:relative}.pulse:after{content:"";border-radius:inherit;background:var(--primary);pointer-events:none;width:100%;height:100%;animation:2s ease-out infinite pulseRing;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.spinner{border:2.5px solid var(--glass-border-light);border-top-color:var(--primary);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}.transition-all{transition:all var(--duration-normal) var(--ease-smooth)}.transition-fast{transition:all var(--duration-fast) var(--ease-smooth)}.transition-colors{transition:color var(--duration-normal), background-color var(--duration-normal), border-color var(--duration-normal)}@media (hover:hover){.hover-lift:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}}.press-active:active{transition:transform .1s var(--ease-out);transform:scale(.97)}.card{background:linear-gradient(180deg, #ffffff0b, #ffffff02 55%), var(--surface-color);border:1px solid #ffffff16;box-shadow:0 12px 28px -10px #0009,inset 0 1px #ffffff12}.bottom-nav{height:calc(var(--nav-height) + var(--safe-area-bottom));padding-bottom:var(--safe-area-bottom);-webkit-backdrop-filter:blur(var(--glass-blur-strong));z-index:50;background:linear-gradient(#161a28eb,#0d0f18f7);border-top:1px solid #ffffff17;flex-shrink:0;justify-content:space-around;align-items:stretch;display:flex;box-shadow:0 -10px 30px #00000073,inset 0 1px #ffffff0d}.bottom-nav [data-tab=today]{--tab-color:var(--primary);--tab-rgb:var(--primary-rgb)}.bottom-nav [data-tab=stack]{--tab-color:var(--planned);--tab-rgb:var(--planned-rgb)}.bottom-nav [data-tab=plan]{--tab-color:var(--info);--tab-rgb:var(--info-rgb)}.bottom-nav [data-tab=insights]{--tab-color:var(--success);--tab-rgb:var(--success-rgb)}.bottom-nav [data-tab=menu]{--tab-color:var(--secondary);--tab-rgb:var(--secondary-rgb)}.bottom-nav .nav-item,.bottom-nav .nav-menu-btn{color:var(--text-tertiary);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.03em;cursor:pointer;transition:color var(--duration-fast) var(--ease-smooth);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-width:44px;text-decoration:none;display:flex;position:relative}.bottom-nav .nav-item .icn,.bottom-nav .nav-menu-btn .icn{box-sizing:content-box;color:var(--tab-color);filter:saturate(.55)brightness(.8);border-radius:var(--radius-full);transition:all var(--duration-normal) var(--ease-spring);flex-shrink:0;padding:4px 11px}.bottom-nav .nav-item.active,.bottom-nav .nav-menu-btn.active{color:var(--tab-color)}.bottom-nav .nav-item.active .icn,.bottom-nav .nav-menu-btn.active .icn{filter:none;background:rgba(var(--tab-rgb), .14);box-shadow:inset 0 1px #ffffff1a}.bottom-nav .nav-item:active .icn,.bottom-nav .nav-menu-btn:active .icn{transform:scale(.9)}.bottom-nav .nav-item.active:after{display:none}.bottom-nav .nav-item.active .icon{filter:none;transform:none}.demo-badge{top:calc(var(--safe-area-top) + 12px);z-index:40;color:#8f84d9;font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.22em;font-family:var(--font-mono);pointer-events:none;border-radius:var(--radius-full);-webkit-backdrop-filter:blur(6px);background:#0b0d14b8;padding:3px 8px 3px 10px;position:fixed;right:14px}.menu-sheet-overlay{-webkit-backdrop-filter:blur(4px);z-index:150;background:#040509a6;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.menu-sheet{background:linear-gradient(180deg, #ffffff0d, #ffffff03 40%), var(--surface-raised);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:480px;padding:var(--space-3) var(--space-4) calc(var(--space-6) + var(--safe-area-bottom));animation:sheetUp var(--duration-normal) var(--ease-out);border:1px solid #ffffff1f;border-bottom:none;box-shadow:0 -18px 50px #0000008c,inset 0 1px #ffffff14}@keyframes sheetUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.menu-sheet .sheet-handle{border-radius:var(--radius-full);width:36px;height:4px;margin:2px auto var(--space-4);background:#ffffff38}.menu-sheet .sheet-context{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);padding:0 var(--space-3) var(--space-2)}.menu-row{align-items:center;gap:var(--space-4);width:100%;padding:14px var(--space-3);color:var(--text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);font-family:var(--font-family);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--ease-smooth);background:0 0;border:none;display:flex}.menu-row:active{background:var(--surface-hover)}.menu-row .icn{color:var(--text-secondary);flex-shrink:0}.menu-row[data-nav=inventory] .icn{color:var(--danger)}.menu-row[data-nav=expenses] .icn{color:var(--success)}.menu-row.menu-row--soon .icn{color:var(--planned)}.menu-row .menu-row-sub{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:var(--font-weight-normal);margin-top:1px;display:block}.menu-row.menu-row--soon{opacity:.5;cursor:default}.menu-row .menu-soon-chip{font-size:10px;font-family:var(--font-mono);letter-spacing:.08em;color:var(--planned);border:1px solid rgba(var(--planned-rgb), .4);border-radius:var(--radius-full);margin-left:auto;padding:2px 8px}.menu-divider{background:var(--glass-border);height:1px;margin:var(--space-2) var(--space-3)}.v2-header{padding:var(--header-padding) 0 var(--space-2)}.v2-header .v2-header-top{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.v2-header .v2-eyebrow{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary)}.v2-header h2{margin:0}.v2-greeting{letter-spacing:-.02em;background:linear-gradient(100deg,#fff 30%,#ffffff9e);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:24px}.v2-header .v2-header-actions{gap:var(--space-2);align-items:center;display:flex}.icon-btn{border-radius:var(--radius-md);background:linear-gradient(180deg, #ffffff0f, #ffffff03), var(--surface-color);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth);border:1px solid #ffffff1a;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 4px 12px -4px #00000080,inset 0 1px #ffffff14}.icon-btn:active{background:var(--surface-hover);transform:scale(.94)}.week-strip{margin:var(--space-4) 0 var(--space-2);grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.week-day{border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth);background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:5px;padding:9px 0 8px;display:flex}.week-day .wd-name{font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.1em;color:var(--text-tertiary);text-transform:uppercase}.week-day .wd-num{font-family:var(--font-mono);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-secondary)}.week-day .wd-dot{border:1.6px solid var(--text-tertiary);background:0 0;border-radius:50%;width:7px;height:7px}.week-day.wd--full .wd-dot{background:var(--success);border-color:var(--success)}.week-day.wd--partial .wd-dot{background:var(--secondary);border-color:var(--secondary)}.week-day.wd--missed .wd-dot{border-color:var(--danger)}.week-day.wd--none .wd-dot{opacity:.35}.week-day.wd--future .wd-dot{opacity:.6;border-style:dotted}.week-day.wd--today .wd-dot{border-color:var(--primary);opacity:1}.week-day.wd--today{border-color:rgba(var(--primary-rgb), .55);background:linear-gradient(180deg, rgba(var(--primary-rgb), .16), rgba(var(--primary-rgb), .05));box-shadow:inset 0 1px #ffffff1f}.week-day.wd--today .wd-num{color:var(--primary)}.week-day.wd--today .wd-name{color:rgba(var(--primary-rgb), .8)}.week-day.wd--selected:not(.wd--today){border-color:var(--glass-border-light);background:var(--surface-color)}.week-day.wd--selected .wd-num{color:var(--text-primary)}.due-summary{justify-content:space-between;align-items:center;gap:var(--space-2);margin:var(--space-3) 0 var(--space-4);display:flex}.due-summary .due-count{color:var(--text-primary);align-items:baseline;gap:8px;display:flex}.due-summary .hero-num{font-family:var(--font-mono);font-size:34px;font-weight:var(--font-weight-bold);color:var(--primary);font-variant-numeric:tabular-nums;line-height:1}.due-summary .hero-den{font-family:var(--font-mono);font-size:19px;font-weight:var(--font-weight-medium);color:var(--text-tertiary)}.due-summary .hero-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.due-summary .hero-done{color:var(--success);font-weight:var(--font-weight-semibold);align-items:center;gap:6px;display:inline-flex}.week-ticks{align-items:center;gap:4px;display:flex}.week-ticks .wt{background:#ffffff1a;border-radius:3px;width:6px;height:12px}.week-ticks .wt--full{background:var(--success)}.week-ticks .wt--partial{background:var(--secondary)}.week-ticks .wt--missed{background:rgba(var(--danger-rgb), .55)}.week-ticks .wt--today{outline:1px solid rgba(var(--primary-rgb), .7);outline-offset:1px}.dose-row{--row-color:var(--primary);align-items:center;gap:var(--space-3);background:linear-gradient(180deg, #ffffff0a, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-lg);margin-bottom:var(--space-3);border:1px solid #ffffff17;padding:15px 14px 15px 0;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 30px -12px #000000a6,inset 0 1px #ffffff12}.dose-row .dose-rail{background:linear-gradient(180deg, var(--row-color), color-mix(in srgb, var(--row-color) 45%, transparent));border-radius:0 3px 3px 0;flex-shrink:0;align-self:stretch;width:4px}.dose-row.dose-row--overdue .dose-rail{background:var(--secondary);animation:2.4s ease-in-out infinite railPulse}@keyframes railPulse{0%,to{opacity:1}50%{opacity:.45}}.dose-row .dose-main{flex:1;min-width:0}.dose-row .dose-title{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.dose-row .dose-title h3{font-size:var(--font-size-md);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.dose-row .dose-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-top:6px;display:flex}.dose-row .dose-qty{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.dose-row .dose-qty-sub{color:var(--text-tertiary);font-weight:var(--font-weight-normal)}.dose-row .dose-blend{font-family:var(--font-mono);color:var(--text-tertiary);margin-top:5px;font-size:10.5px}.dose-row .dose-warn{margin-top:8px}.dose-row .dose-actions{flex-shrink:0;align-items:center;margin-right:22px;display:flex}.dose-row>.btn-dots{width:44px;height:44px;color:var(--text-secondary);position:absolute;top:0;right:0}.dose-row.dose-row--taken{opacity:.8;background:linear-gradient(180deg, #ffffff05, #ffffff01), var(--surface-color);padding-top:9px;padding-bottom:9px;box-shadow:0 8px 20px -12px #00000080,inset 0 1px #ffffff0a}.dose-row.dose-row--taken .dose-rail{opacity:.4}.dose-row.dose-row--taken .dose-meta .chip,.dose-row.dose-row--taken .dose-blend,.dose-row.dose-row--taken .dose-warn{display:none}.dose-row.dose-row--taken .dose-meta{margin-top:3px}.chip{border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border:1px solid var(--glass-border-light);color:var(--text-secondary);white-space:nowrap;background:#ffffff09;align-items:center;gap:4px;padding:3px 9px;display:inline-flex}.chip .icn{width:12px;height:12px}.chip--time{color:var(--info);border-color:rgba(var(--info-rgb), .35);background:rgba(var(--info-rgb), .09)}.chip--day{font-family:var(--font-mono)}.chip--phase{color:#a99cff;border-color:rgba(var(--planned-rgb), .45);background:rgba(var(--planned-rgb), .11)}.chip--warn{color:var(--secondary);border-color:rgba(var(--secondary-rgb), .4);background:rgba(var(--secondary-rgb), .1)}.chip--danger{color:var(--danger);border-color:rgba(var(--danger-rgb), .4);background:rgba(var(--danger-rgb), .1)}.chip--success{color:var(--success);border-color:rgba(var(--success-rgb), .4);background:rgba(var(--success-rgb), .1)}.btn-log{border-radius:var(--radius-md);background:linear-gradient(180deg, #ffffff40, #fff0 45%), var(--primary-gradient);min-width:78px;min-height:46px;color:var(--text-on-primary);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.015em;cursor:pointer;box-shadow:0 4px 24px rgba(var(--primary-rgb), .35), 0 2px 6px #00000059, inset 0 1px 0 #fff6;transition:transform var(--duration-fast) var(--ease-smooth);-webkit-user-select:none;user-select:none;touch-action:manipulation;border:none;justify-content:center;align-items:center;gap:6px;padding:0 19px;display:inline-flex;position:relative;overflow:hidden}.btn-log:active{transform:scale(.96)}.btn-log:disabled{background:var(--surface-hover);color:var(--text-tertiary);box-shadow:none;cursor:default}.btn-log.btn-log--ghost{background:rgba(var(--primary-rgb), .08);color:var(--primary);border:1px solid rgba(var(--primary-rgb), .35);box-shadow:none}.btn-log.btn-log--done{background:rgba(var(--success-rgb), .12);color:var(--success);border:1px solid rgba(var(--success-rgb), .35);box-shadow:none}.btn-log .hold-fill{transform-origin:0;pointer-events:none;background:#ffffff61;position:absolute;inset:0;transform:scaleX(0)}.btn-log.btn-log--ghost .hold-fill{background:rgba(var(--primary-rgb), .3)}.btn-log.holding .hold-fill{transition:transform .62s cubic-bezier(.2,.8,.2,1);transform:scaleX(1)}.btn-log .btn-log-label{z-index:1;align-items:center;gap:6px;display:inline-flex;position:relative}@media (prefers-reduced-motion:reduce){.btn-log .hold-fill{display:none}}.btn-dots{width:34px;height:46px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.btn-dots:active{background:var(--surface-hover);color:var(--text-secondary)}.action-sheet-list{flex-direction:column;display:flex}.action-sheet-list .menu-row{padding:15px var(--space-3)}.action-sheet-list .menu-row.danger,.action-sheet-list .menu-row.danger .icn{color:var(--danger)}.v2-alert{align-items:flex-start;gap:var(--space-3);border-radius:var(--radius-lg);margin-bottom:var(--space-3);font-size:var(--font-size-sm);border:1px solid;padding:13px 14px;display:flex;box-shadow:0 10px 24px -12px #00000080,inset 0 1px #ffffff0d}.v2-alert .icn{flex-shrink:0;margin-top:1px}.v2-alert strong{font-size:var(--font-size-sm);display:block}.v2-alert .v2-alert-detail{color:var(--text-secondary);font-size:var(--font-size-xs);margin-top:2px}.v2-alert .v2-alert-dismiss{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:2px}.v2-alert--warning{background:linear-gradient(180deg, rgba(var(--secondary-rgb), .13), rgba(var(--secondary-rgb), .05));border-color:rgba(var(--secondary-rgb), .38)}.v2-alert--warning .icn{color:var(--secondary);filter:drop-shadow(0 0 6px rgba(var(--secondary-rgb), .6))}.v2-alert--action{background:linear-gradient(180deg, rgba(var(--danger-rgb), .13), rgba(var(--danger-rgb), .05));border-color:rgba(var(--danger-rgb), .38)}.v2-alert--action .icn{color:var(--danger);filter:drop-shadow(0 0 6px rgba(var(--danger-rgb), .6))}.v2-alert--positive{background:linear-gradient(180deg, rgba(var(--success-rgb), .13), rgba(var(--success-rgb), .05));border-color:rgba(var(--success-rgb), .38)}.v2-alert--positive .icn{color:var(--success);filter:drop-shadow(0 0 6px rgba(var(--success-rgb), .6))}.gauge{border-radius:var(--radius-full);background:#ffffff12;height:7px;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #0006}.gauge .gauge-fill{border-radius:var(--radius-full);background:linear-gradient(90deg, color-mix(in srgb, var(--primary) 70%, #fff 10%), var(--primary));box-shadow:0 0 8px rgba(var(--primary-rgb), .5);transition:width var(--duration-slow) var(--ease-out);position:absolute;inset:0 auto 0 0}.gauge.gauge--low .gauge-fill{background:var(--secondary);box-shadow:0 0 8px rgba(var(--secondary-rgb), .5)}.gauge.gauge--critical .gauge-fill{background:var(--danger);box-shadow:0 0 8px rgba(var(--danger-rgb), .5)}.vial-gauge{--vc:var(--vial-color,var(--primary));width:34px;filter:drop-shadow(0 7px 12px color-mix(in srgb, var(--vc) 38%, #00000080));flex-direction:column;flex-shrink:0;align-items:center;display:flex}.vial-gauge .vial-cap{background:linear-gradient(180deg, color-mix(in srgb, var(--vc) 70%, #fff 26%), var(--vc) 45%, color-mix(in srgb, var(--vc) 80%, #000 14%));border-radius:5px 5px 2px 2px;width:22px;height:10px;box-shadow:inset 0 1.5px #ffffff73}.vial-gauge .vial-band{background:linear-gradient(90deg,#8a93a6,#e3e8f2 30%,#aeb6c6 55%,#6e7688);border-radius:0 0 2px 2px;width:14px;height:6px;box-shadow:0 1px 1px #00000080}.vial-gauge .vial-glass{background:linear-gradient(105deg,#ffffff29,#ffffff05 40%,#ffffff17 78%,#ffffff05),#080a118c;border:1px solid #ffffff38;border-radius:9px 9px 7px 7px;width:28px;height:38px;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff3,inset 0 -2px 4px #00000059}.vial-gauge .vial-glass:after{content:"";border-radius:var(--radius-full);z-index:3;pointer-events:none;background:linear-gradient(#ffffff73,#ffffff0d);width:3.5px;position:absolute;top:3px;bottom:3px;left:3px}.vial-gauge .vial-fill{background:linear-gradient(180deg, color-mix(in srgb, var(--vc) 72%, #fff 18%), var(--vc) 55%, color-mix(in srgb, var(--vc) 78%, #000 12%));min-height:3px;transition:height var(--duration-slow) var(--ease-out);box-shadow:0 -2px 10px color-mix(in srgb, var(--vc) 45%, transparent);position:absolute;bottom:0;left:0;right:0}.vial-gauge .vial-fill:after{content:"";background:color-mix(in srgb, var(--vc) 55%, #fff 30%);opacity:.9;border-radius:50%;height:5px;position:absolute;top:-2px;left:1px;right:1px}.vial-gauge--pill .vial-cap{background:repeating-linear-gradient(90deg,#141a2847 0 1px,#0000 1px 3px),linear-gradient(#f4f6fa,#cdd3de 65%,#a9b1c2);border-radius:3px 3px 2px 2px;width:24px;height:11px;box-shadow:inset 0 1.5px #ffffffbf,0 1px 2px #00000073}.vial-gauge--pill .vial-band{width:18px;height:4px;box-shadow:none;background:linear-gradient(#ff9c428c,#c4641e73);border-radius:0}.vial-gauge--pill .vial-glass{background:linear-gradient(105deg,#fff3,#ffffff08 40%,#ffffff1c 78%,#ffffff08),linear-gradient(#d6742052,#96481047),#180e068c;border-color:#ffac5c61;border-radius:6px 6px 7px 7px;width:30px;height:37px;box-shadow:inset 0 1px #ffdcaa47,inset 0 -2px 4px #3c190066}.vial-gauge--pill .vial-fill{background:radial-gradient(3.2px 2.4px at 2.6px 2.2px, color-mix(in srgb, var(--vc) 52%, #fff 44%) 0 42%, var(--vc) 43% 76%, color-mix(in srgb, var(--vc) 66%, #000 34%) 77% 98%, transparent 99%), radial-gradient(3.2px 2.4px at 2.6px 2.2px, color-mix(in srgb, var(--vc) 52%, #fff 44%) 0 42%, var(--vc) 43% 76%, color-mix(in srgb, var(--vc) 66%, #000 34%) 77% 98%, transparent 99%), color-mix(in srgb, var(--vc) 26%, #170d05 74%);min-height:6px;box-shadow:0 -2px 10px color-mix(in srgb, var(--vc) 32%, transparent);background-position:.5px 1px,4.5px 4px,0 0;background-size:8px 6px,8px 6px,auto}.vial-gauge--pill .vial-fill:after{content:none}.stack-sect{margin:var(--space-5) 0 var(--space-3)}#stack-list .stack-sect:first-child{margin-top:var(--space-2)}.snapshot-grid{gap:var(--space-3);padding-bottom:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(168px,1fr));display:grid}.snapshot-card{border-radius:var(--radius-lg);cursor:pointer;min-width:0;transition:all var(--duration-fast) var(--ease-smooth);background:#ffffff06;border:1px solid #ffffff0e;align-items:center;gap:11px;padding:11px;text-decoration:none;display:flex;box-shadow:0 8px 18px -12px #00000080}.snapshot-card:active{transform:scale(.97)}.snapshot-card .snap-pct{color:var(--text-primary)}.snapshot-card.snapshot-card--low{border-color:rgba(var(--danger-rgb), .4)}.snapshot-card.snapshot-card--low .snap-pct{color:var(--danger)}.low-chip{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.1em;color:var(--danger);border:1px solid rgba(var(--danger-rgb), .45);border-radius:var(--radius-full);vertical-align:2px;margin-left:6px;padding:1px 6px}.snapshot-card .snap-info{min-width:0}.snapshot-card .snap-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.snapshot-card .snap-pct{font-family:var(--font-mono);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin-top:1px}.snapshot-card .snap-sub{font-family:var(--font-mono);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10px;overflow:hidden}.v2-section{margin:var(--space-6) 0 var(--space-3);justify-content:space-between;align-items:center;display:flex}.v2-section .v2-section-title{font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);align-items:center;gap:7px;display:flex}.v2-section .v2-section-title .icn{width:13px;height:13px;color:var(--primary);opacity:.8}.v2-empty{text-align:center;padding:var(--space-10) var(--space-6);color:var(--text-secondary);border:1px dashed var(--glass-border-light);border-radius:var(--radius-lg);background:#ffffff04}.v2-empty .icn{color:var(--text-tertiary);margin-bottom:var(--space-3)}.v2-empty p{font-size:var(--font-size-sm)}.disclaimer-footer{text-align:center;color:var(--text-tertiary);padding:var(--space-6) var(--space-4) var(--space-4);font-size:10.5px;line-height:1.5}.about-block{background:linear-gradient(180deg, #ffffff0a, #ffffff02 55%), var(--surface-color);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4);box-shadow:0 10px 24px -12px #0000008c,inset 0 1px #ffffff0f}.about-block h3{margin-bottom:var(--space-2);font-size:var(--font-size-md)}.about-block p{font-size:var(--font-size-sm)}.switch{flex-shrink:0;width:46px;height:27px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch .track{border-radius:var(--radius-full);background:var(--surface-hover);transition:background var(--duration-normal) var(--ease-smooth);cursor:pointer;border:1px solid #ffffff1a;position:absolute;inset:0}.switch .track:before{content:"";width:21px;height:21px;transition:transform var(--duration-normal) var(--ease-spring);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 6px #0006}.switch input:checked+.track{background:var(--primary);border-color:#0000}.switch input:checked+.track:before{transform:translate(19px)}.switch input:focus-visible+.track{outline:2px solid rgba(var(--primary-rgb), .6);outline-offset:2px}.settings-row .settings-caption{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:4px;display:block}#quick-weight-btn{color:var(--info);border-color:rgba(var(--info-rgb), .35);background:linear-gradient(180deg, rgba(var(--info-rgb), .12), rgba(var(--info-rgb), .04)), var(--surface-color)}#quick-journal-btn{color:var(--planned);border-color:rgba(var(--planned-rgb), .35);background:linear-gradient(180deg, rgba(var(--planned-rgb), .12), rgba(var(--planned-rgb), .04)), var(--surface-color)}.modal-content.bottom-sheet{background:linear-gradient(180deg, #ffffff0d, #ffffff03 40%), var(--surface-raised);border-radius:var(--radius-xl) var(--radius-xl) 0 0;border:1px solid #ffffff1f;border-bottom:none;box-shadow:0 -18px 50px #0000008c,inset 0 1px #ffffff14}.modal-content.bottom-sheet:before{border-radius:var(--radius-full);background:#ffffff38;width:36px;height:4px}.modal-header{border-bottom:none}.modal-header h3{font-size:var(--font-size-lg);letter-spacing:-.01em}.modal-footer{border-top:1px solid var(--glass-border)}.modal-footer .btn-primary{background:linear-gradient(180deg, #ffffff40, #fff0 45%), var(--primary-gradient);color:var(--text-on-primary);font-weight:var(--font-weight-bold);border-radius:var(--radius-md);box-shadow:0 4px 18px rgba(var(--primary-rgb), .3), inset 0 1px 0 #ffffff59;border:none}.modal-footer .btn-secondary{border:1px solid var(--glass-border-light);color:var(--text-secondary);border-radius:var(--radius-md);background:#ffffff0a}.modal-body .form-group label{font-family:var(--font-mono);font-size:10.5px;font-weight:var(--font-weight-semibold);letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary)}.modal-body .form-control{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-md);color:var(--text-primary)}.modal-body .form-control:focus{border-color:rgba(var(--primary-rgb), .6);box-shadow:0 0 0 3px rgba(var(--primary-rgb), .15);outline:none}.wm-hero{justify-content:center;align-items:center;gap:var(--space-4);margin:var(--space-2) 0 var(--space-1);display:flex}.wm-input{border:none;border-bottom:2px solid rgba(var(--info-rgb), .45);width:150px;font-family:var(--font-mono);font-size:44px;font-weight:var(--font-weight-bold);color:var(--text-primary);text-align:center;appearance:textfield;background:0 0;padding:4px 0 6px}.wm-input::-webkit-inner-spin-button{-webkit-appearance:none}.wm-input::-webkit-outer-spin-button{-webkit-appearance:none}.wm-input:focus{border-bottom-color:var(--info);outline:none}.wm-input::placeholder{color:var(--text-tertiary)}.wm-step{border:1px solid var(--glass-border-light);background:var(--surface-color);width:44px;height:44px;color:var(--text-secondary);font-size:22px;font-family:var(--font-mono);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth);border-radius:50%;box-shadow:inset 0 1px #ffffff12}.wm-step:active{background:var(--surface-hover);transform:scale(.92)}.wm-unit{text-align:center;font-family:var(--font-mono);font-size:var(--font-size-xs);letter-spacing:.22em;color:rgba(var(--info-rgb), .85);margin-bottom:var(--space-5)}.jr-section{font-family:var(--font-mono);font-size:10.5px;font-weight:var(--font-weight-semibold);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin:var(--space-5) 0 var(--space-3);align-items:center;gap:7px;display:flex}.jr-section:first-child{margin-top:0}.jr-section .jr-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.jr-row{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.jr-row .jr-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.rate5{--rc:var(--primary);gap:5px;display:flex}.rate5 .rate5-seg{border:1px solid var(--glass-border-light);cursor:pointer;width:30px;height:26px;transition:all var(--duration-fast) var(--ease-smooth);background:#ffffff08;border-radius:7px;padding:0}.rate5 .rate5-seg.on{background:linear-gradient(180deg, color-mix(in srgb, var(--rc) 85%, #fff 10%), var(--rc));box-shadow:0 2px 8px -2px color-mix(in srgb, var(--rc) 60%, transparent), inset 0 1px 0 #ffffff4d;border-color:#0000}.rate5 .rate5-seg:active{transform:scale(.9)}.jr-sleep-hours{align-items:center;gap:var(--space-2);display:flex}.jr-sleep-hours input{text-align:center;width:64px;font-family:var(--font-mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-md);color:var(--text-primary);padding:7px 4px}.jr-sleep-hours .jr-hr-step{border:1px solid var(--glass-border-light);background:var(--surface-color);width:34px;height:34px;color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;border-radius:50%;font-size:16px}.jr-sleep-hours .jr-hr-step:active{background:var(--surface-hover)}.dp-head{padding:0 var(--space-2) var(--space-3);justify-content:space-between;align-items:center;display:flex}.dp-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);letter-spacing:-.01em}.dp-nav{gap:var(--space-2);display:flex}.dp-nav .icon-btn{width:34px;height:34px}.dp-nav .icon-btn:disabled{opacity:.3;cursor:default}.dp-grid{padding:0 var(--space-1);grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.dp-dow{text-align:center;font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-tertiary);padding-bottom:6px;font-size:10px}.dp-day{aspect-ratio:1;border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-smooth);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex;position:relative}.dp-day:not(:disabled):active{background:var(--surface-hover)}.dp-day:disabled{color:var(--text-tertiary);opacity:.35;cursor:default}.dp-day.dp-day--today{border-color:rgba(var(--primary-rgb), .5);color:var(--primary)}.dp-day.dp-day--selected{background:linear-gradient(180deg, rgba(var(--primary-rgb), .25), rgba(var(--primary-rgb), .12));border-color:rgba(var(--primary-rgb), .6);color:var(--primary);font-weight:var(--font-weight-bold)}.dp-day .dp-dot{background:var(--text-tertiary);opacity:.6;border-radius:50%;width:4px;height:4px;position:absolute;bottom:4px}.dp-today-btn{width:calc(100% - 8px);margin:var(--space-3) auto 0;border-radius:var(--radius-md);border:1px solid rgba(var(--primary-rgb), .35);background:rgba(var(--primary-rgb), .08);color:var(--primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);cursor:pointer;padding:11px;display:block}.chip .chip-mono{font-family:var(--font-mono)}.modal-body input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.modal-body input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.modal-body input[type=number]{appearance:textfield}.dose-ladder{display:block}.ladder-chart-wrap{margin-top:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-2);border:1px solid var(--glass-border-light);border-radius:var(--radius-md);background:linear-gradient(#ffffff06,#fff0 40%),#0000002e}.ladder-chart-title{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--space-1)}.ladder-next{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:var(--space-1)}.ladder-next-val{font-family:var(--font-mono);font-weight:var(--font-weight-semibold);color:#a99cff}.ladder-next--final{color:var(--text-tertiary)}.das-ladder{margin:0 var(--space-3) var(--space-3);padding:var(--space-3) var(--space-3) var(--space-2);border:1px solid rgba(var(--planned-rgb), .22);border-radius:var(--radius-md);background:linear-gradient(180deg, rgba(var(--planned-rgb), .05), rgba(var(--planned-rgb), 0) 55%), #0003}.das-ladder-title{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--space-1)}.das-next{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:var(--space-1);align-items:center;gap:5px;display:flex}.das-next svg{color:#a99cff;flex-shrink:0}.das-next-val{font-family:var(--font-mono);font-weight:var(--font-weight-semibold);color:#a99cff}.das-next--final{color:var(--text-tertiary)}.das-next--final svg{color:var(--success)}.ladder-section{margin-bottom:var(--space-4)}.ladder-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.ladder-tag{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.12em;color:var(--text-tertiary);border:1px solid var(--glass-border-light);vertical-align:2px;border-radius:999px;margin-left:4px;padding:2px 7px}.ladder-add-btn{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.06em;color:#a99cff;background:rgba(var(--planned-rgb), .1);border:1px solid rgba(var(--planned-rgb), .4);border-radius:var(--radius-md);cursor:pointer;min-height:30px;transition:background var(--transition-fast);padding:6px 12px}.ladder-add-btn:active{background:rgba(var(--planned-rgb), .22)}.ladder-hint{font-size:var(--font-size-xs);color:var(--text-tertiary);line-height:var(--line-height-relaxed);margin:var(--space-1) 0 var(--space-3)}.ladder-step{border:1px solid var(--glass-border-light);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3) var(--space-3);margin-bottom:var(--space-2);background:#ffffff06;position:relative}.ladder-step--future{border-color:rgba(var(--planned-rgb), .35);background:linear-gradient(180deg, rgba(var(--planned-rgb), .07), rgba(var(--planned-rgb), .02))}.ladder-step--future .ladder-step-num{color:#a99cff;border-color:rgba(var(--planned-rgb), .5);background:rgba(var(--planned-rgb), .12)}.ladder-step-head{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.ladder-step-num{font-family:var(--font-mono);font-size:11px;font-weight:var(--font-weight-bold);color:var(--text-secondary);border:1px solid var(--glass-border-light);background:#ffffff0a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.ladder-label{border:none;border-bottom:1px dashed var(--glass-border-light);min-width:0;color:var(--text-primary);font-size:var(--font-size-sm);background:0 0;border-radius:0;outline:none;flex:1;padding:4px 2px}.ladder-label:focus{border-bottom-color:rgba(var(--planned-rgb), .6)}.ladder-label::placeholder{color:var(--text-tertiary)}.ladder-remove{width:26px;height:26px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;font-size:17px;line-height:1}.ladder-remove:active{color:var(--danger)}.ladder-step-grid{gap:var(--space-2);grid-template-columns:64px 1fr 78px;display:grid}.ladder-field{flex-direction:column;gap:3px;margin:0;display:flex}.ladder-fl{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.12em;color:var(--text-tertiary)}.ladder-field input{background:var(--surface-input,#00000040);border:1px solid var(--glass-border-light);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);outline:none;min-height:36px;padding:7px 8px}.ladder-field input:focus{border-color:rgba(var(--planned-rgb), .55)}.ladder-field input:disabled{opacity:.7;background:0 0;border-style:dashed}.ladder-field--date input{letter-spacing:-.02em;font-size:12px}.ladder-week-static{min-height:36px;font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);align-items:center;padding:0 8px;display:inline-flex}.adj-compound{font-family:var(--font-mono);font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);margin-top:var(--space-1);justify-content:center;align-items:center;gap:7px;display:flex}.adj-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.adj-current{padding:var(--space-3) 0 var(--space-4);flex-direction:column;align-items:center;gap:2px;display:flex}.adj-cur-label{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.16em;color:var(--text-tertiary)}.adj-cur-val{font-family:var(--font-mono);font-size:34px;font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.1}.adj-cur-val small{font-size:14px;font-weight:var(--font-weight-medium);color:var(--text-secondary)}.adj-note{font-size:var(--font-size-xs);color:var(--text-tertiary);line-height:var(--line-height-relaxed);margin-top:var(--space-2)}.stack-card{background:linear-gradient(180deg, #ffffff0a, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-lg);margin-bottom:var(--space-3);border:1px solid #ffffff17;padding:14px;position:relative;box-shadow:0 14px 30px -12px #000000a6,inset 0 1px #ffffff12}.stack-main{cursor:pointer;text-align:left;width:100%;font-family:var(--font-family);color:var(--text-primary);background:0 0;border:none;align-items:center;gap:13px;padding:0 30px 0 0;display:flex}.stack-card>.stack-more-btn{width:44px;height:44px;color:var(--text-secondary);position:absolute;top:4px;right:4px}.stack-info{flex:1;min-width:0}.stack-name-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.stack-name-row h3{font-size:var(--font-size-md);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.stack-proto{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:4px}.stack-proto .mono{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.stack-vline{font-family:var(--font-mono);color:var(--text-tertiary);margin-top:3px;font-size:10.5px}.stack-chip{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.1em;color:var(--text-tertiary);border:1px solid var(--glass-border-light);border-radius:var(--radius-full);white-space:nowrap;padding:1.5px 7px}.stack-chip--danger{color:var(--danger);border-color:rgba(var(--danger-rgb), .45);background:rgba(var(--danger-rgb), .08)}.stack-chip--info{color:var(--info);border-color:rgba(var(--info-rgb), .4);background:rgba(var(--info-rgb), .08)}.vial-gauge.vial-gauge--empty{opacity:.4;filter:none}.stack-cycle{align-items:center;gap:10px;margin-top:12px;display:flex}.stack-cycle .gauge{flex:1}.stack-cycle .gauge-fill{background:linear-gradient(90deg, color-mix(in srgb, var(--vial-color) 70%, #fff 12%), var(--vial-color));box-shadow:none}.stack-cycle--off .gauge-fill{background:#ffffff38}.stack-cycle-label{font-family:var(--font-mono);color:var(--text-tertiary);white-space:nowrap;font-size:10px}.stack-ladder{margin-top:12px}.stack-cta{border-radius:var(--radius-md);width:100%;min-height:44px;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.015em;cursor:pointer;transition:transform var(--duration-fast) var(--ease-smooth);justify-content:center;align-items:center;gap:7px;margin-top:12px;display:flex}.stack-cta:active{transform:scale(.97)}.stack-cta--primary{background:linear-gradient(180deg, #ffffff40, #fff0 45%), var(--primary-gradient);color:var(--text-on-primary);box-shadow:0 4px 24px rgba(var(--primary-rgb), .35), 0 2px 6px #00000059, inset 0 1px 0 #fff6;border:none}.stack-cta--ghost{background:rgba(var(--primary-rgb), .08);color:var(--primary);border:1px solid rgba(var(--primary-rgb), .35);box-shadow:none}.menu-sheet.cd-sheet{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:88vh;overflow-y:auto}.cd-head{padding:0 var(--space-3) var(--space-3);align-items:center;gap:9px;display:flex}.cd-head h3{font-size:var(--font-size-lg);letter-spacing:-.01em;margin:0}.cd-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.cd-block{border:1px solid var(--glass-border-light);border-radius:var(--radius-md);padding:var(--space-3);margin:0 var(--space-1) var(--space-3);background:#ffffff05}.cd-block-title{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--space-3);align-items:center;gap:6px;display:flex}.cd-block-title .icn{color:var(--vial-color,var(--primary));opacity:.85}.cd-count{font-family:var(--font-mono);color:var(--text-secondary);border:1px solid var(--glass-border-light);border-radius:var(--radius-full);padding:0 7px;font-size:10px}.cd-empty{font-size:var(--font-size-sm);color:var(--text-tertiary);margin:0 0 var(--space-1)}.cd-vial{align-items:center;gap:var(--space-4);display:flex}.cd-stats{flex:1;grid-template-columns:repeat(2,1fr);gap:10px 12px;display:grid}.cd-stat{flex-direction:column;gap:1px;min-width:0;display:flex}.cd-stat-val{font-family:var(--font-mono);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap}.cd-stat-val--danger{color:var(--danger)}.cd-stat-lbl{color:var(--text-tertiary);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-family:var(--font-mono)}.cd-act-row{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.cd-act{border-radius:var(--radius-md);border:1px solid var(--glass-border-light);min-height:36px;color:var(--text-secondary);font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--ease-smooth);background:#ffffff09;align-items:center;gap:6px;padding:8px 13px;display:inline-flex}.cd-act:active{background:var(--surface-hover)}.cd-act:disabled{opacity:.4;cursor:default}.cd-act .icn{color:var(--primary);opacity:.9}.cd-act--danger{color:var(--danger);border-color:rgba(var(--danger-rgb), .35)}.cd-act--danger .icn{color:var(--danger)}.cd-act--sm{min-height:32px;padding:6px 10px}.cd-proto-line{font-size:var(--font-size-sm);color:var(--text-secondary)}.cd-proto-dose{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.cd-proto-start{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:3px;display:block}.cd-stock-row{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--glass-border);padding:9px 0;display:flex}.cd-stock-row:last-of-type{border-bottom:none}.cd-stock-info{min-width:0;font-size:var(--font-size-sm);color:var(--text-primary);flex:1}.cd-stock-meta{font-size:var(--font-size-xs);color:var(--text-tertiary)}.cd-stock-qty{color:var(--text-secondary);font-size:var(--font-size-sm)}.icon-mini{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-mini:active{background:var(--surface-hover);color:var(--text-secondary)}.cd-notes-input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-sm);resize:none;min-height:58px;padding:10px 12px}.cd-notes-input:focus{border-color:rgba(var(--primary-rgb), .55);outline:none}.cd-hist-row{align-items:flex-start;gap:var(--space-3);border-bottom:1px solid var(--glass-border);padding:9px 0;display:flex}.cd-hist-row:last-child{border-bottom:none}.cd-hist-dot{background:var(--vial-color,var(--primary));width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--vial-color,var(--primary)) 55%, transparent);border-radius:50%;flex-shrink:0;margin-top:5px}.cd-hist-body{flex:1;min-width:0}.cd-hist-date{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-tertiary);text-transform:uppercase;font-size:10px}.cd-hist-type{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-top:1px}.cd-hist-val{font-family:var(--font-mono);color:var(--text-secondary);margin-top:2px;font-size:11px}.cd-manage{margin:var(--space-2) var(--space-1) 0}.inv-group{background:linear-gradient(180deg, #ffffff0a, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-lg);margin-bottom:var(--space-3);border:1px solid #ffffff17;padding:13px 14px;box-shadow:0 14px 30px -12px #000000a6,inset 0 1px #ffffff12}.inv-group-head{border-bottom:1px solid var(--glass-border);align-items:center;gap:9px;padding-bottom:9px;display:flex}.inv-group-head h3{font-size:var(--font-size-md);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;overflow:hidden}.inv-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.inv-total{color:var(--text-tertiary);font-size:10.5px}.inv-row{align-items:center;gap:var(--space-2);padding:10px 0 2px;display:flex}.inv-row+.inv-row{border-top:1px solid var(--glass-border);margin-top:8px}.inv-row-info{flex:1;min-width:0}.inv-mg{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.inv-meta{font-size:var(--font-size-xs);color:var(--text-tertiary)}.inv-qty{font-size:var(--font-size-sm);color:var(--text-secondary)}.inv-row-info h4{font-size:var(--font-size-sm);margin:0}.inv-supply-row{align-items:center;gap:var(--space-2);background:linear-gradient(180deg, #ffffff08, #ffffff01 60%), var(--surface-color);border-radius:var(--radius-lg);margin-bottom:var(--space-2);border:1px solid #ffffff12;padding:11px 12px;display:flex;box-shadow:0 10px 22px -12px #0000008c,inset 0 1px #ffffff0d}.stepper{border:1px solid var(--glass-border-light);border-radius:var(--radius-full);background:#00000038;flex-shrink:0;align-items:center;gap:2px;padding:2px;display:flex}.stepper-btn{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-smooth);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.stepper-btn:active{background:var(--surface-hover);color:var(--text-primary)}.stepper-val{text-align:center;min-width:34px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.stack-fc{color:var(--text-tertiary);white-space:nowrap}.stack-fc--low{color:var(--secondary)}.stack-fc--critical{color:var(--danger)}.inv-runout{font-family:var(--font-mono);color:var(--text-tertiary);white-space:nowrap;flex-shrink:0;font-size:10px}.inv-runout:after{content:" ·";color:var(--text-tertiary)}.inv-runout--low{color:var(--secondary)}.inv-runout--critical{color:var(--danger)}.stepper-val--low{color:var(--secondary)}.stepper-val--critical{color:var(--danger)}.fc-row{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:5px 0;display:flex}.fc-row+.fc-row{border-top:1px solid var(--glass-border)}.fc-k{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap}.fc-v{color:var(--text-primary);text-align:right;font-size:11.5px}.fc-v--low{color:var(--secondary)}.fc-v--critical{color:var(--danger)}.fc-phase-note{font-size:var(--font-size-xs);color:var(--planned,#8b7cf6);align-items:center;gap:5px;margin-top:7px;display:flex}.fc-phase-note .mono{font-weight:var(--font-weight-semibold)}.v2-alert--link{cursor:pointer}.v2-alert--link:active{filter:brightness(1.12)}.ag-day{margin-bottom:var(--space-4)}.ag-day--rest{margin-bottom:var(--space-3)}.ag-head{margin-bottom:var(--space-2);align-items:baseline;gap:6px;padding:0 2px;display:flex}.ag-head-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--text-primary);letter-spacing:-.01em}.ag-head-date{font-size:var(--font-size-xs);color:var(--text-secondary)}.ag-rest-note{font-size:var(--font-size-xs);color:var(--text-tertiary);opacity:.7;margin-left:auto}.ag-none{font-size:var(--font-size-xs);color:var(--text-tertiary);padding:2px 2px 0}.ag-row{--row-color:var(--primary);align-items:center;gap:var(--space-3);background:linear-gradient(180deg, #ffffff08, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-family:var(--font-family);text-align:left;border:1px solid #ffffff12;margin-bottom:7px;padding:11px 12px 11px 0;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 22px -12px #0000008c,inset 0 1px #ffffff0d}button.ag-row{cursor:pointer;transition:transform var(--duration-fast) var(--ease-smooth)}button.ag-row:active{transform:scale(.985)}.ag-rail{background:linear-gradient(180deg, var(--row-color), color-mix(in srgb, var(--row-color) 45%, transparent));border-radius:0 3px 3px 0;flex-shrink:0;align-self:stretch;width:3.5px}.ag-name{min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.ag-dose{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap}.ag-time{color:var(--text-tertiary);letter-spacing:.08em;flex-shrink:0;width:22px;font-size:10px}.ag-status{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.ag-status--taken{color:var(--success)}.ag-status--due{color:var(--primary);font-weight:var(--font-weight-semibold)}.ag-status--missed{color:var(--danger)}.ag-row--taken{opacity:.65}.ag-row--taken .ag-rail{opacity:.4}.ag-marker{border:1px solid rgba(var(--planned-rgb), .32);border-radius:var(--radius-md);background:linear-gradient(180deg, rgba(var(--planned-rgb), .09), rgba(var(--planned-rgb), .02));color:#a99cff;width:100%;font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:left;cursor:pointer;align-items:center;gap:8px;margin-bottom:7px;padding:8px 11px;display:flex}.ag-marker .icn{flex-shrink:0}.ag-marker .mono{font-weight:var(--font-weight-semibold)}.ag-marker--low{border-color:rgba(var(--secondary-rgb), .35);background:linear-gradient(180deg, rgba(var(--secondary-rgb), .09), rgba(var(--secondary-rgb), .02));color:var(--secondary)}.ag-marker--critical{border-color:rgba(var(--danger-rgb), .35);background:linear-gradient(180deg, rgba(var(--danger-rgb), .09), rgba(var(--danger-rgb), .02));color:var(--danger)}.cyc-row{--vc:var(--vial-color,var(--primary));background:linear-gradient(180deg, #ffffff0a, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-lg);width:100%;margin-bottom:var(--space-3);cursor:pointer;text-align:left;font-family:var(--font-family);color:var(--text-primary);transition:transform var(--duration-fast) var(--ease-smooth);border:1px solid #ffffff17;padding:13px 14px 11px;display:block;box-shadow:0 14px 30px -12px #000000a6,inset 0 1px #ffffff12}.cyc-row:active{transform:scale(.985)}.cyc-top{align-items:center;gap:8px;margin-bottom:14px;display:flex}.cyc-dot{background:var(--vc);width:9px;height:9px;box-shadow:0 0 7px color-mix(in srgb, var(--vc) 55%, transparent);border-radius:50%;flex-shrink:0}.cyc-row--off .cyc-dot{border:2px solid var(--vc);box-shadow:none;background:0 0}.cyc-name{min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.cyc-label{color:var(--text-tertiary);white-space:nowrap;font-size:10px}.cyc-runout--low{color:var(--secondary)}.cyc-runout--critical{color:var(--danger)}.cyc-runout--neutral{color:var(--text-tertiary)}.cyc-bar{border-radius:var(--radius-full);background:#ffffff0f;height:8px;margin-top:2px;position:relative;box-shadow:inset 0 1px 2px #0006}.cyc-fill{border-radius:var(--radius-full);background:linear-gradient(90deg, color-mix(in srgb, var(--vc) 70%, #fff 10%), var(--vc));position:absolute;inset:0 auto 0 0}.cyc-bar--off .cyc-fill{background:repeating-linear-gradient(-55deg,#ffffff38 0 3px,#ffffff0d 3px 7px)}.cyc-tick{background:#ffffff73;border-radius:1px;width:2px;position:absolute;top:-3px;bottom:-3px;transform:translate(-1px)}.cyc-tick--planned{background:var(--planned);box-shadow:0 0 5px rgba(var(--planned-rgb), .7)}.cyc-tick--low{background:var(--secondary);box-shadow:0 0 5px rgba(var(--secondary-rgb), .6)}.cyc-tick--critical{background:var(--danger);box-shadow:0 0 5px rgba(var(--danger-rgb), .6)}.cyc-tick--neutral{background:#ffffff4d}.cyc-restart{background:var(--planned);width:9px;height:9px;box-shadow:0 0 8px rgba(var(--planned-rgb), .7);border-radius:2px;position:absolute;top:50%;transform:translate(-50%,-50%)rotate(45deg)}.cyc-restart-lbl{color:#a99cff}.cyc-today{border-left:1px dashed #ffffff59;width:0;position:absolute;top:-6px;bottom:-5px}.cyc-today-tag{font-family:var(--font-mono);letter-spacing:1.5px;color:#ffffff6b;font-size:8.5px;position:absolute;top:-12px;left:0;transform:translate(-50%)}.cyc-meta{justify-content:space-between;gap:var(--space-2);font-family:var(--font-mono);color:var(--text-tertiary);margin-top:9px;font-size:10px;display:flex}.pl-monthnav{gap:var(--space-2);display:flex}.pl-monthnav .icon-btn{width:32px;height:32px}.pl-month-card{padding:var(--space-4) var(--space-3) var(--space-3)}.pl-month-label{text-align:center;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;margin-bottom:var(--space-3)}.pl-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.pl-day{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-smooth);background:0 0;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;display:flex;position:relative}.pl-day:not(.pl-day--pad):active{background:var(--surface-hover)}.pl-day--pad{cursor:default}.pl-num{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1}.pl-day--off .pl-num{color:var(--text-tertiary);opacity:.55}.pl-day--future .pl-num{color:var(--text-secondary)}.pl-day--today{border-color:rgba(var(--primary-rgb), .5)}.pl-day--today .pl-num{color:var(--primary);font-weight:var(--font-weight-bold)}.pl-dot{background:0 0;border-radius:50%;flex-shrink:0;width:5px;height:5px}.pl-day--taken .pl-dot{background:var(--success)}.pl-day--partial .pl-dot{background:var(--secondary)}.pl-day--missed .pl-dot{border:1.4px solid var(--danger)}.pl-day--scheduled .pl-dot{border:1.4px solid var(--text-tertiary)}.pl-day--future .pl-dot{border:1.2px dotted var(--text-tertiary);opacity:.7}.pl-tick{background:var(--planned);width:3px;height:8px;box-shadow:0 0 5px rgba(var(--planned-rgb), .7);border-radius:2px;flex-shrink:0}.pl-day .pl-tick{position:absolute;bottom:5px;left:calc(50% + 7px)}.pl-legend{margin-top:var(--space-3);font-family:var(--font-mono);letter-spacing:.05em;color:var(--text-tertiary);flex-wrap:wrap;justify-content:center;gap:5px 12px;font-size:10px;display:flex}.pl-legend span{align-items:center;gap:5px;display:inline-flex}.pl-lg{border-radius:50%;width:6px;height:6px;display:inline-block}.pl-lg--taken{background:var(--success)}.pl-lg--partial{background:var(--secondary)}.pl-lg--missed{border:1.4px solid var(--danger)}.pl-lg--future{border:1.2px dotted var(--text-tertiary)}.pl-lg--planned{background:var(--planned);border-radius:2px;width:3px;height:8px}.pld-head{padding:0 var(--space-3) var(--space-3)}.pld-head h3{font-size:var(--font-size-lg);letter-spacing:-.01em;margin:0}.pl-partner-row{font-size:var(--font-size-xs);color:var(--text-tertiary);align-items:center;gap:7px;padding:6px 4px;display:flex}.pl-partner-row .icn{opacity:.7;flex-shrink:0}.seg{margin-top:var(--space-3);border-radius:var(--radius-md);background:#00000047;border:1px solid #ffffff0f;gap:3px;padding:3px;display:flex;box-shadow:inset 0 1px 3px #00000059}.seg-btn{border-radius:calc(var(--radius-md) - 3px);color:var(--text-tertiary);font-family:var(--font-mono);font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;transition:color var(--duration-fast), background var(--duration-fast);background:0 0;border:1px solid #0000;flex:1;padding:8px 4px}.seg-btn:active{color:var(--text-secondary)}.seg-btn--active{background:linear-gradient(180deg, #ffffff12, #ffffff05 70%), var(--surface-raised);color:var(--text-primary);border-color:#ffffff1a;box-shadow:0 3px 10px -4px #0009,inset 0 1px #ffffff14}.ih-event{--row-color:var(--primary);border-radius:var(--radius-md);width:100%;color:var(--text-secondary);font-family:var(--font-family);font-size:var(--font-size-xs);text-align:left;cursor:pointer;background:#ffffff05;border:1px dashed #ffffff1f;align-items:center;gap:8px;margin-bottom:7px;padding:8px 10px;display:flex}.ih-event:active{background:var(--surface-hover)}.ih-event .icn{color:var(--row-color);flex-shrink:0}.ih-event-main{flex:1;min-width:0}.ih-event-main strong{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.ih-event-val{color:var(--text-secondary);white-space:nowrap}.ih-dose .ag-status--taken .icn{opacity:.8}.ins-chart-card{padding:var(--space-4) var(--space-3) var(--space-3);margin-bottom:var(--space-4)}.ins-chart{height:190px;position:relative}.ins-chart--bars{height:170px}.ins-chart-head{padding:0 4px var(--space-3);align-items:baseline;gap:10px;display:flex}.ins-current{font-size:26px;font-weight:var(--font-weight-semibold);color:var(--text-primary);letter-spacing:-.02em}.ins-current small{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--text-secondary)}.ins-delta{font-size:var(--font-size-xs);color:var(--info);background:rgba(var(--info-rgb), .1);border:1px solid rgba(var(--info-rgb), .3);border-radius:var(--radius-full);padding:2px 8px}.ins-chart-sub{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-left:auto}.ins-wlist{background:linear-gradient(180deg, #ffffff08, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-md);padding:2px var(--space-3);margin-bottom:var(--space-4);border:1px solid #ffffff12;box-shadow:0 10px 22px -12px #0000008c,inset 0 1px #ffffff0d}.ins-wrow{border-bottom:1px solid #ffffff0d;align-items:center;gap:10px;padding:9px 0;display:flex}.ins-wrow:last-child{border-bottom:none}.ins-wmain{flex:1;align-items:baseline;gap:9px;min-width:0;display:flex}.ins-wval{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.ins-wval small{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--text-tertiary)}.ins-wdate{font-size:var(--font-size-xs);color:var(--text-tertiary)}.ins-wnote{max-width:38%;font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-style:italic;overflow:hidden}.ins-jcard{background:linear-gradient(180deg, #ffffff08, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-md);padding:var(--space-3);border:1px solid #ffffff12;margin-bottom:8px;box-shadow:0 10px 22px -12px #0000008c,inset 0 1px #ffffff0d}.ins-jhead{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.ins-jdate{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.ins-jacts{gap:4px;display:flex}.ins-jmetrics{flex-wrap:wrap;gap:6px 14px;display:flex}.ins-jm{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.ins-jm .mono{color:var(--text-primary)}.ins-jm i{background:var(--jm,var(--text-tertiary));width:6px;height:6px;box-shadow:0 0 5px color-mix(in srgb, var(--jm,transparent) 60%, transparent);border-radius:50%}.ins-jcrash{font-size:var(--font-size-xs);color:var(--secondary);align-items:center;gap:5px;margin-top:8px;display:flex}.ins-jnotes{font-size:var(--font-size-sm);color:var(--text-secondary);margin:8px 0 0}.ins-jlist{margin-bottom:var(--space-4)}.ins-stats{margin:var(--space-2) 0 var(--space-4);grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.ins-stat{background:linear-gradient(180deg, #ffffff08, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-md);text-align:center;border:1px solid #ffffff12;padding:10px 8px;box-shadow:0 10px 22px -12px #0000008c,inset 0 1px #ffffff0d}.ins-stat-val{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);letter-spacing:-.01em;display:block}.ins-stat-lbl{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-top:2px;font-size:10px;display:block}.ins-clist{margin-bottom:var(--space-4)}.ins-crow,.ins-prow{background:linear-gradient(180deg, #ffffff08, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-family:var(--font-family);text-align:left;border:1px solid #ffffff12;grid-template-columns:14px 1fr auto;align-items:center;column-gap:9px;margin-bottom:7px;padding:11px 12px;display:grid;box-shadow:0 10px 22px -12px #0000008c,inset 0 1px #ffffff0d}button.ins-crow,button.ins-prow{cursor:pointer;transition:transform var(--duration-fast) var(--ease-smooth)}button.ins-crow:active,button.ins-prow:active{transform:scale(.985)}.ins-crow .cd-dot,.ins-prow .cd-dot{justify-self:center;width:8px;height:8px}.ins-crow-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ins-crow-total{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);white-space:nowrap}.ins-crow-sub{font-size:var(--font-size-xs);color:var(--text-tertiary);grid-column:2/4;margin-top:3px}.ins-crow-sub .mono{color:var(--text-secondary)}.ins-prow-na{color:var(--text-tertiary);font-size:var(--font-size-md)}.ins-proj-note{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:-4px 2px 10px}.ins-olist{margin-bottom:var(--space-4)}.ins-order{align-items:center;gap:var(--space-3);background:linear-gradient(180deg, #ffffff08, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-family:var(--font-family);text-align:left;cursor:pointer;transition:transform var(--duration-fast) var(--ease-smooth);border:1px solid #ffffff12;margin-bottom:7px;padding:12px;display:flex;box-shadow:0 10px 22px -12px #0000008c,inset 0 1px #ffffff0d}.ins-order:active{transform:scale(.985)}.ins-order-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ins-order-vendor{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.ins-order-meta{font-size:var(--font-size-xs);color:var(--text-tertiary)}.ins-order-meta .mono{color:var(--text-secondary)}.ins-order-note{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-style:italic;overflow:hidden}.ins-order-cost{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}:focus-visible{outline:2px solid rgba(var(--primary-rgb), .9);outline-offset:2px}.btn-log:focus-visible,.stack-cta--primary:focus-visible,.modal-footer .btn-primary:focus-visible,.btn.btn-primary:focus-visible{outline-color:#fffffff2}.bottom-nav .nav-item:focus-visible,.bottom-nav .nav-menu-btn:focus-visible{outline-offset:-3px;border-radius:var(--radius-md)}.btn-dots:focus-visible{outline-offset:-8px;border-radius:var(--radius-md)}.seg-btn:focus-visible{outline-offset:-2px}.menu-sheet:focus-visible,.modal-content:focus-visible{outline:none}.icon-btn,.icon-mini,.btn-dots,.stepper-btn,.ladder-remove,.jr-hr-step,.v2-alert-dismiss,.btn-close,.switch,.seg-btn,.rate5 .rate5-seg{position:relative}.icon-btn:after,.icon-mini:after,.btn-dots:after,.stepper-btn:after,.ladder-remove:after,.jr-hr-step:after,.v2-alert-dismiss:after,.btn-close:after,.switch:after{content:"";width:max(100%,44px);height:max(100%,44px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.seg-btn:after{content:"";width:100%;height:44px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.rate5 .rate5-seg:after{content:"";width:34px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cdc-row{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--glass-border);padding:9px 0;display:flex}.cdc-row:last-child{border-bottom:none}.cdc-main{flex:1;min-width:0}.cdc-range{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:var(--font-weight-medium)}.cdc-row--ongoing .cdc-range{color:var(--vial-color,var(--primary))}.cdc-sub{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:2px}.cdc-sub .mono{color:var(--text-secondary)}.cdc-days{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.cdc-days .mono{font-weight:var(--font-weight-semibold);color:var(--text-primary)}.ins-crow-total small{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--text-tertiary)}.cd-fold-head{cursor:pointer;width:100%;min-height:36px;color:inherit;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;font-family:inherit;display:flex}.cd-fold-head .cd-block-title{margin-bottom:0}.cd-fold-chev{color:var(--text-tertiary);transition:transform var(--duration-fast) var(--ease-smooth);display:inline-flex}.cd-fold-head[aria-expanded=true] .cd-fold-chev{transform:rotate(180deg)}.cd-fold-body{margin-top:var(--space-2)}.sect-fold-head{cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;min-height:36px;padding:0;display:flex}.sect-fold-head .cd-fold-chev{color:var(--text-tertiary);transition:transform var(--duration-fast) var(--ease-smooth);display:inline-flex}.sect-fold-head[aria-expanded=true] .cd-fold-chev{transform:rotate(180deg)}.ins-cyc-group{background:linear-gradient(180deg, #ffffff08, #ffffff02 60%), var(--surface-color);border-radius:var(--radius-md);border:1px solid #ffffff12;margin-bottom:7px;box-shadow:0 10px 22px -12px #0000008c,inset 0 1px #ffffff0d}.ins-cyc-head{cursor:pointer;width:100%;min-height:48px;color:var(--text-primary);font-family:var(--font-family);text-align:left;background:0 0;border:none;align-items:center;gap:9px;padding:11px 12px;display:flex}.ins-cyc-head .cd-dot{width:8px;height:8px}.ins-cyc-name{min-width:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.ins-cyc-meta{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap}.ins-cyc-meta .mono{color:var(--text-secondary)}.ins-cyc-chev{color:var(--text-tertiary);transition:transform var(--duration-fast) var(--ease-smooth);flex-shrink:0;display:inline-flex}.ins-cyc-head[aria-expanded=true] .ins-cyc-chev{transform:rotate(180deg)}.ins-cyc-body{padding:0 12px 6px}.ins-cyc-body .cdc-row:first-child{border-top:1px solid var(--glass-border)}.ins-cyc-link{cursor:pointer;color:var(--text-secondary);font-family:var(--font-family);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:0 0;border:none;align-items:center;gap:5px;padding:9px 0 6px;display:inline-flex}.ins-cyc-link .icn{color:var(--primary);opacity:.9}
