:root{font-family:Outfit,Arial,sans-serif;color:#192b21;background:#faf6ee;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.58;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #84c9e5;outline-offset:2px}.app-shell{max-width:448px;min-height:100vh;min-height:100dvh;margin:0 auto;background:#faf6ee;position:relative;box-shadow:0 0 90px #29281b12}.topbar{padding:25px 22px 14px;display:flex;align-items:center;justify-content:space-between;gap:8px}.wordmark{font-family:Fraunces,Georgia,serif;font-size:27px;font-weight:700;letter-spacing:-1.1px}.wordmark span{color:#c98189}.top-note,.eyebrow{letter-spacing:1.5px;font-size:10px;font-weight:700;color:#93739a}.top-note{color:#57685e;letter-spacing:1px}main{padding:15px 22px 115px}.eyebrow{margin:12px 0 7px}h1,h2,p{margin-top:0}h1{font-family:Fraunces,Georgia,serif;font-size:35px;line-height:1.18;letter-spacing:-1.3px;margin-bottom:9px}h2{font-family:Fraunces,Georgia,serif}.intro{font-size:14px;color:#57685e;line-height:1.55;margin-bottom:22px}.heading-line{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.add-button{background:#c98189;color:#fff;border:0;border-radius:50%;min-width:47px;height:47px;font-size:30px;line-height:1;box-shadow:0 5px 16px #c9818940}.account-button{border:1px solid #dfdad0;color:#2f4639;border-radius:30px;background:#fffdfa;font-size:12px;padding:8px 12px}.summary-line{display:flex;gap:7px;margin-bottom:18px;flex-wrap:wrap}.summary-line span{background:#fffdfa;border:1px solid #dfdad0;border-radius:18px;font-size:12px;padding:7px 10px}.toggle{display:flex;align-items:center;gap:9px;font-size:13px;color:#57685e;margin-bottom:22px}.toggle input{accent-color:#2f4639}.category{margin-bottom:28px}.category-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.category-heading h2{font-size:21px;margin:0}.category-heading span{font-size:12px;color:#57685e}.product{background:#fffdfa;border:1px solid #dfdad0;border-radius:17px;margin-bottom:9px;overflow:hidden;padding:14px}.product-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.product-main{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.product-main strong{font-size:14px;overflow-wrap:anywhere}.product-main small{font-size:12px;color:#57685e}.status{border-radius:50px;padding:5px 9px;font-size:10px;white-space:nowrap;font-weight:700}.status.open{background:#d6f7ef;color:#275b48}.status.unopened{background:#d7f0fb;color:#24526a}.status.empty{background:#f3e7ce;color:#665225}.progress{height:6px;background:#efebe2;margin:15px 0 8px;border-radius:5px;overflow:hidden}.progress span{height:100%;display:block;background:#84c9e5;border-radius:5px}.product-detail{font-size:11px;color:#57685e;margin:11px 0 9px}.product-actions{display:flex;gap:9px;flex-wrap:wrap}.product-actions button{border:0;background:#efebe2;border-radius:18px;padding:8px 13px;font-size:12px;color:#2f4639;font-weight:700}.product-actions .delete{background:#fbdcde;color:#933742}.primary{background:#2f4639;color:#f9f5ec;border:0;border-radius:25px;padding:12px 17px;font-weight:700;font-size:13px}.wide{width:100%;margin-top:12px;padding:15px}.empty-card{background:#fffdfa;border:1px dashed #dfdad0;border-radius:20px;padding:30px 22px;text-align:center;margin-top:24px}.empty-illustration{color:#c98189;font-size:45px;margin-bottom:12px}.empty-card h2{font-size:24px;margin-bottom:8px}.empty-card p{font-size:14px;color:#57685e;line-height:1.5}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:448px;display:grid;grid-template-columns:repeat(3,1fr);background:#2f4639;padding:12px 9px max(12px,env(safe-area-inset-bottom));border-radius:22px 22px 0 0;box-shadow:0 -4px 23px #192b2117}.bottom-nav button{background:transparent;border:0;color:#bbcdc1;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:5px}.bottom-nav button span{font-size:23px}.bottom-nav .active{color:#f3e7ce;font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.metric{border-radius:16px;padding:16px 10px;display:flex;align-items:center;flex-direction:column;gap:5px}.metric strong{font-family:Fraunces,Georgia,serif;font-size:28px}.metric span{font-size:12px}.mint{background:#d6f7ef}.blue{background:#d7f0fb}.gold{background:#f3e7ce}.value-card{background:#2f4639;color:#fffdfa;border-radius:18px;padding:22px;margin-bottom:12px;display:flex;flex-direction:column;gap:6px}.value-card span{font-size:13px}.value-card strong{font-family:Fraunces,Georgia,serif;font-size:33px}.value-card small{font-size:12px;opacity:.8}.value-card.lavender{background:#f0e3f3;color:#492c4d}.modal-backdrop{position:fixed;inset:0;background:#192b2180;z-index:5;display:flex;justify-content:center;align-items:flex-end}.sheet{width:100%;max-width:448px;max-height:92vh;max-height:92dvh;overflow:auto;background:#fffdfa;border-radius:26px 26px 0 0;padding:24px 22px max(28px,env(safe-area-inset-bottom));box-shadow:0 -15px 45px #0002}.sheet-top{display:flex;align-items:center;justify-content:space-between}.sheet-top h2{font-size:25px;margin:0}.close{background:#efebe2;color:#192b21;border:0;border-radius:50%;width:32px;height:32px;font-size:22px}.hint{font-size:13px;color:#57685e;margin:10px 0 22px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-row label{min-width:0}.sheet label,.panel label{font-size:12px;color:#57685e;font-weight:600;display:block;margin-bottom:13px}.sheet input,.sheet select,.panel input{width:100%;border:1px solid #dfdad0;background:#fff;border-radius:11px;padding:12px 11px;min-width:0;margin-top:6px;color:#192b21}.sheet input:disabled{background:#efebe2;color:#57685e}.error-message{background:#fbdcde;color:#a12b3b;border-radius:10px;padding:10px;font-size:12px}.success-message{background:#d6f7ef;color:#205b42;border-radius:10px;padding:10px;font-size:12px}.panel{background:#fffdfa;border:1px solid #dfdad0;border-radius:20px;padding:22px;margin-top:30px}.panel h2{font-size:23px;margin-bottom:20px}.auth-screen{padding-top:48px}.text-button{border:0;background:none;color:#2f4639;text-decoration:underline;font-size:12px;margin-top:17px;padding:4px}.footnote,.footer-note{font-size:11px;color:#57685e;line-height:1.5;text-align:center;margin-top:22px}.footer-note{margin-top:50px;overflow-wrap:anywhere}.splash{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px}.splash p{color:#57685e;font-size:13px}@media(min-width:500px){body{padding-top:20px}.app-shell{border-radius:24px 24px 0 0;min-height:calc(100vh - 20px)}}@media(max-width:340px){main{padding-left:14px;padding-right:14px}.topbar{padding-left:14px;padding-right:14px}.top-note{font-size:9px}.product{padding:12px}.form-row{gap:8px}}.routine-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#efebe2;border-radius:18px;padding:5px;margin:18px 0}.routine-tabs button{border:0;border-radius:13px;background:transparent;color:#57685e;padding:12px 8px;font-weight:700;font-size:13px}.routine-tabs button.selected{background:#fffdfa;color:#2f4639;box-shadow:0 2px 9px #192b2115}.routine-summary{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 2px 14px}.routine-summary strong{font-size:14px}.routine-summary span{font-size:12px;color:#57685e}.routine-items{display:flex;flex-direction:column;gap:10px}.routine-item{display:flex;align-items:center;gap:13px;padding:15px 13px;background:#fffdfa;border:1px solid #dfdad0;border-radius:16px;cursor:pointer}.routine-item.checked{background:#d6f7ef;border-color:#7accaa}.routine-item input{accent-color:#25a351;width:22px;height:22px;flex-shrink:0;cursor:pointer}.routine-item input:disabled{cursor:wait}.routine-item-body{display:flex;flex-direction:column;gap:5px;min-width:0}.routine-item-body strong{font-size:14px;overflow-wrap:anywhere}.routine-item-body small{color:#57685e;font-size:11px;line-height:1.35}.routine-footnote{font-size:12px;color:#57685e;line-height:1.5;margin-top:23px}.metric-grid.four{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.metric-grid.four .metric{padding:13px 3px}.metric-grid.four .metric strong{font-size:25px}.metric-grid.four .metric span{font-size:10px;text-align:center}.metric.rose{background:#fbdcde}.soon-section{margin-top:28px}.soon-section h2{font-size:23px;margin-bottom:7px}.forecast-empty{padding:19px;background:#fffdfa;border:1px solid #dfdad0;border-radius:15px;color:#57685e;font-size:13px}.soon-item{padding:14px;border-radius:15px;border:1px solid #dfdad0;background:#fffdfa;margin-bottom:9px}.soon-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;font-size:14px}.soon-title strong{overflow-wrap:anywhere}.soon-item small{display:block;color:#57685e;font-size:11px;line-height:1.5}.soon-item .progress{margin:13px 0}.days-chip{border-radius:18px;background:#f3e7ce;color:#745725;font-size:11px;font-weight:700;padding:5px 8px;white-space:nowrap}.days-chip.urgent{background:#fbdcde;color:#933742}.soon-action{border:0;border-radius:20px;background:#efebe2;color:#2f4639;font-weight:700;padding:7px 12px;font-size:11px}.status-group{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:4px}.status.expired{background:#c74a51;color:#fff}.forecast-line{font-size:11px;line-height:1.5;color:#57685e;margin:8px 0 11px}.remaining-card{border:1px solid #dfdad0;border-radius:15px;background:#faf6ee;padding:15px;margin:6px 0 18px}.remaining-header{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.remaining-header span{font-family:Fraunces,Georgia,serif;font-size:24px;color:#2f4639}.remaining-card input[type=range]{margin:10px 0 3px;width:100%;padding:0;accent-color:#2f4639;cursor:pointer}.remaining-card .hint{margin:10px 0}.remaining-scale{display:flex;justify-content:space-between;color:#57685e}.remaining-note{font-size:12px;color:#57685e;margin:9px 0 0}.dose-fieldset{border:0;padding:0;margin:0 0 20px}.dose-fieldset legend{font-size:12px;font-weight:700;color:#57685e;margin-bottom:11px}.dose-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.dose-card{border:1px solid #dfdad0;border-radius:13px;background:#fff;padding:12px 5px;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11px;font-weight:600;color:#2f4639}.dose-card.selected{border:2px solid #2f4639;padding:11px 4px;background:#d6f7ef}.dose-icon{font-size:21px;line-height:1}.dose-hint{font-size:11px;color:#57685e;margin:12px 0}.dose-conversion{display:block;color:#57685e;font-size:11px}@media(max-width:340px){.dose-grid{gap:4px}.dose-card{font-size:10px;padding:9px 2px}.metric-grid.four .metric strong{font-size:21px}}.bottle-editor{display:grid;grid-template-columns:165px 1fr;gap:8px;align-items:center;padding:7px 0}.bottle-stage{height:224px;width:160px;position:relative}.fill-bottle{height:224px;width:160px;display:block;filter:drop-shadow(0 4px 7px #2f463924)}.bottle-input{position:absolute;top:45px;left:38px;width:86px!important;height:167px!important;opacity:.01;cursor:ns-resize;touch-action:none;margin:0!important;writing-mode:vertical-lr;direction:rtl;-webkit-appearance:slider-vertical;appearance:slider-vertical}.bottle-input:focus-visible{opacity:.2;outline:2px solid #2f4639;outline-offset:1px;border-radius:12px}.bottle-controls{display:flex;flex-direction:column;gap:14px;padding:8px 0}.bottle-help{font-size:13px;line-height:1.45;color:#2f4639}.bottle-controls small{font-size:11px;color:#57685e}.bottle-quick-buttons{display:flex;gap:6px;flex-wrap:wrap}.bottle-quick-buttons button{border:1px solid #c6d4ce;background:#fffdfa;color:#2f4639;border-radius:12px;padding:8px 10px;font-weight:700;font-size:12px}.quantity-step{margin:16px 0 12px;padding:15px;background:#f3e7ce;border-radius:15px}.quantity-step>strong{font-size:12px;display:block}.quantity-controls{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:14px}.quantity-controls button{background:#2f4639;color:#fff;border:0;border-radius:50%;width:43px;height:43px;font-size:25px;flex-shrink:0}.quantity-controls span{display:flex;flex-direction:column;align-items:center;gap:1px}.quantity-controls b{font-family:Fraunces,Georgia,serif;font-size:29px}.quantity-controls small{font-size:11px;color:#57685e}.dose-advanced{border-top:1px solid #dfdad0;margin:13px 0;padding-top:13px}.dose-advanced summary{cursor:pointer;color:#2f4639;font-size:12px;font-weight:600;margin-bottom:10px}.dose-advanced label{margin-top:10px}@media(max-width:365px){.bottle-editor{grid-template-columns:145px 1fr;gap:3px}.bottle-stage,.fill-bottle{width:145px}.bottle-input{left:34px;width:82px!important}}.remaining-card{padding:10px 12px;margin:4px 0 12px}.remaining-header{font-size:12px}.remaining-header span{font-size:20px}.bottle-editor{grid-template-columns:124px minmax(0,1fr);gap:8px;padding:0}.bottle-stage,.fill-bottle{width:120px;height:168px}.bottle-input{left:28px!important;top:34px!important;width:65px!important;height:125px!important}.bottle-controls{gap:7px;padding:2px 0}.bottle-help{font-size:11px;line-height:1.35}.bottle-controls small{font-size:10px}.bottle-quick-buttons{gap:5px}.bottle-quick-buttons button{padding:7px 8px;font-size:11px}.remaining-note{font-size:11px;margin-top:3px}.dose-fieldset{margin:0 0 12px}.dose-fieldset legend{margin-bottom:5px}.dose-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.dose-card{min-height:62px;padding:7px 3px;gap:4px;border-radius:10px;font-size:10px;line-height:1.15}.dose-card.selected{padding:6px 2px}.dose-icon{font-size:17px}.dose-hint{margin:6px 0;font-size:10px;line-height:1.35}.quantity-step{margin:9px 0;padding:9px 12px;border-radius:12px}.quantity-step>strong{font-size:11px}.quantity-controls{margin-top:7px;gap:10px}.quantity-controls button{width:36px;height:36px;font-size:21px}.quantity-controls b{font-size:23px}.quantity-controls small{font-size:10px}.quantity-step>.dose-hint{margin-bottom:0}.dose-advanced{margin:8px 0 0;padding-top:8px}.routine-schedule{border:0;margin:0 0 13px;padding:0}.routine-schedule legend{color:#57685e;font-size:12px;font-weight:700;margin-bottom:8px}.routine-schedule-options{display:flex;gap:9px;flex-wrap:wrap}.routine-schedule .schedule-check{display:flex;align-items:center;gap:7px;background:#faf6ee;border:1px solid #dfdad0;padding:9px 11px;border-radius:11px;margin:0;color:#2f4639}.schedule-check input{width:17px!important;height:17px;accent-color:#2f4639;margin:0!important}.frequency-note{display:block;margin-top:5px;font-size:10px;font-weight:400;color:#57685e}.extra-use-section{margin-top:28px}.extra-use-section h2{font-size:23px;margin-bottom:6px}.extra-use-section .intro{margin-bottom:13px}.extra-use-list{display:flex;flex-direction:column;gap:8px}.extra-use-item{border:1px solid #dfdad0;border-radius:14px;background:#fffdfa;padding:12px;display:flex;justify-content:space-between;gap:10px;align-items:center}.extra-use-name{display:flex;flex-direction:column;gap:4px;min-width:0}.extra-use-name strong{font-size:13px;overflow-wrap:anywhere}.extra-use-name small{font-size:11px;color:#57685e}.extra-use-actions{display:flex;gap:5px;align-items:center;flex-shrink:0}.extra-use-actions button{border:0;border-radius:16px;padding:8px;font-size:11px;font-weight:700}.extra-use-add{background:#2f4639;color:#fff}.extra-use-undo{background:#efebe2;color:#2f4639}@media(max-width:360px){.bottle-editor{grid-template-columns:118px minmax(0,1fr)}.bottle-stage,.fill-bottle{width:116px}.bottle-input{left:27px!important;width:63px!important}.dose-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.extra-use-item{align-items:flex-start;flex-direction:column}.extra-use-actions{align-self:flex-end}}.as-needed-section{background:#e3f2e9;border:1px solid #c5dfce;border-radius:17px;padding:13px;margin:12px 0 24px}.as-needed-section h2{font-size:21px;margin-bottom:5px}.routine-log-hint{font-size:12px;line-height:1.4;color:#57685e;margin:5px 0 13px}.scheduled-heading{font-size:21px;margin:12px 0 5px}.as-needed-section .extra-use-item{background:#fffdfa}.extra-use-section{background:#fffdfa;border:1px solid #dfdad0;border-radius:15px;padding:13px;margin-top:18px}.extra-use-section summary{font-weight:700;font-size:13px;color:#2f4639;cursor:pointer}.extra-use-section .extra-use-list{margin-top:10px}.empty-routine-note{background:#fffdfa;border:1px solid #dfdad0;padding:14px;border-radius:12px}.week-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:15px 0 13px}.week-toolbar strong{font-size:13px;text-align:center}.week-toolbar button{height:36px;width:38px;flex-shrink:0;border:1px solid #d9d9ce;border-radius:12px;background:#fffdfa;color:#2f4639;font-size:25px}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.week-day{border:1px solid #dfdad0;background:#fffdfa;color:#57685e;min-height:74px;padding:7px 1px;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:4px}.week-day span{font-size:10px}.week-day strong{font-size:17px;color:#2f4639}.week-day small{font-size:12px;line-height:1;color:#90a699}.week-day.selected{border:2px solid #2f4639;background:#d6f7ef;padding:6px 0}.week-day.today strong{text-decoration:underline;text-underline-offset:3px}.week-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:10px;color:#57685e;margin-top:10px}.week-legend b{padding-right:3px}.legend-assumed{color:#388a74}.legend-skipped{color:#c98189}.day-detail-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:26px 0 13px}.day-detail-heading h2{font-size:22px;margin:0}.day-detail-heading small{font-size:10px;color:#57685e;text-align:right;max-width:175px;line-height:1.35}.weekly-slot{margin:18px 0 24px}.weekly-slot>h2{font-size:20px;margin-bottom:10px}.weekly-product,.weekly-extra-product{border:1px solid #dfdad0;background:#fffdfa;border-radius:14px;padding:12px;margin:8px 0}.weekly-product{display:flex;align-items:center;justify-content:space-between;gap:8px}.weekly-product>div:first-child,.weekly-extra-top{display:flex;flex-direction:column;gap:4px;min-width:0}.weekly-product strong,.weekly-extra-top strong{font-size:13px;overflow-wrap:anywhere}.weekly-product small,.weekly-extra-top small{font-size:11px;color:#57685e}.weekly-product button,.week-inline-actions button{border:1px solid #d9d9ce;background:#efebe2;color:#2f4639;border-radius:12px;padding:8px 10px;font-weight:600;font-size:11px}.week-status{font-size:11px;border-radius:9px;padding:6px 9px}.week-status.planned{background:#e3f0e8}.week-inline-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.weekly-extra-product{display:flex;flex-direction:column;gap:10px}.week-extra-counts{display:flex;gap:8px;flex-wrap:wrap;font-size:11px;color:#57685e}.week-extra-counts span{background:#f3f2eb;padding:5px 7px;border-radius:8px}.weekly-extra-product .week-inline-actions{justify-content:flex-start}.extra-daily-control{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0}.extra-daily-control>span{display:flex;flex-direction:column;gap:4px}.extra-daily-control strong{font-size:12px}.extra-daily-control small{color:#57685e;font-size:10px}.quantity-mini{display:flex;align-items:center;gap:12px;flex-shrink:0}.quantity-mini b{min-width:16px;text-align:center}.quantity-mini button{width:33px;height:33px;border:0;border-radius:50%;background:#2f4639;color:#fff;font-size:20px}@media(max-width:365px){.week-strip{gap:2px}.week-day{border-radius:8px}.week-day span{font-size:9px}.week-day strong{font-size:15px}.day-detail-heading{display:block}.day-detail-heading small{display:block;margin-top:4px;text-align:left;max-width:none}}.routine-weekly-preview{font-size:12px;background:#e3f2e9;border-radius:11px;padding:10px;margin-top:5px;color:#2f4639}
