@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{--bg:#eef1eb;--card:#fbfbf9;--ink:#2d3a33;--ink-soft:#717e75;--line:#e4e7df;--sage:#5e8e73;--sage-deep:#436a52;--sage-bg:#e8efe8;--warm:#bc8038;--warm-deep:#8c5f26;--warm-soft:#efe2c8;--stone:#9ba39b;--stone-line:#c7ccc2;--clay:#b07a5e;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{color:inherit}.app-shell{background:var(--bg);width:min(100%,480px);min-height:100vh;margin:0 auto;box-shadow:0 0 0 1px #2d3a330d}.screen{min-height:100vh;padding:18px 16px 28px}.today-screen{padding:0 14px 26px}.today-header{z-index:5;padding:max(12px, env(safe-area-inset-top)) 2px 12px;background:color-mix(in srgb, var(--bg) 94%, white);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid #e4e7dfc2;position:sticky;top:0}.status-row,.date-nav,.top-bar,.sheet-head,.sheet-actions{align-items:center;display:flex}.status-row{min-height:42px;color:var(--ink-soft);justify-content:space-between;gap:10px;padding:0 2px 2px 8px;font-size:.92rem;font-weight:700}.status-title{align-items:center;gap:8px;min-width:0;display:flex}.status-title>span{min-width:0}.sync-pill{border:1px solid var(--line);min-height:24px;color:var(--ink-soft);white-space:nowrap;background:#fbfbf9b8;border-radius:999px;align-items:center;padding:2px 8px;font-size:.72rem;font-weight:900;line-height:1;display:inline-flex}.sync-pill.synced{border-color:color-mix(in srgb, var(--sage) 32%, var(--line));color:var(--sage-deep)}.sync-pill.saving,.sync-pill.loading{color:var(--warm-deep);border-color:#dbb272}.sync-pill.offline,.sync-pill.unconfigured,.sync-pill.error{color:var(--ink-soft)}.date-nav{justify-content:space-between;gap:8px}.date-title{text-align:center;background:0 0;border:0;min-width:0;padding:4px 10px 8px}.date-title strong,.top-bar h1,.summary-card h1,.centered h1{letter-spacing:0;font-family:Fraunces,Georgia,serif;font-size:2rem;line-height:1.02;display:block}.date-title span{color:var(--ink-soft);margin-top:4px;font-size:.95rem;font-weight:600;display:block}.icon-button,.back-button,.text-button,.small-button{border:1px solid var(--line);background:var(--card);border-radius:999px;justify-content:center;align-items:center;gap:7px;min-width:44px;min-height:44px;display:inline-flex}.icon-button:disabled{opacity:.35}.icon-button.quiet{background:0 0;border-color:#0000}.week-strip{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:10px;display:grid}.week-strip button{border:1px solid var(--line);background:var(--card);min-width:0;color:var(--ink-soft);border-radius:14px;padding:8px 2px}.week-strip .selected{border-color:var(--sage);color:var(--ink);box-shadow:0 6px 16px -12px #436a5280}.week-strip .today:not(.selected){color:var(--warm-deep);border-color:#dbb272}.week-strip .future{opacity:.34}.week-strip span,.week-strip strong{font-size:.75rem;display:block}.week-strip strong{margin-top:2px;font-size:1rem}.dot{border:1px solid var(--stone-line);border-radius:50%;width:8px;height:8px;margin:6px auto 0;display:block}.dot.all{background:var(--sage);border-color:var(--sage)}.dot.partial{background:var(--stone-line)}.dot.blank{border-color:#0000}.calendar-today{width:100%;min-height:40px;color:var(--sage-deep);background:0 0;border:0;border-radius:999px;justify-content:center;margin-top:8px;font-weight:900;display:flex}.timeline{padding:8px 8px 72px}.time-group,.now-row{gap:14px;display:flex}.time-group{border-radius:20px;margin:0;position:relative}.time-group.current{background:var(--card);border:1px solid #ecdfc4;align-items:center;min-height:78px;margin:0 0 14px;padding:10px 10px 10px 6px;box-shadow:0 12px 28px -18px #966e2d80}.time-rail{flex-direction:column;flex:0 0 56px;align-items:center;display:flex;position:relative}.time-rail:before{content:"";background:var(--line);width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.time-group:first-child .time-rail:before{top:18px}.time-group.last .time-rail:before{height:20px;bottom:auto}.time-group.current .time-rail:before,.now-row .time-rail:before{display:none}.time-group.current .time-rail{justify-content:center;align-self:stretch}.rail-time,.rail-period{z-index:1;background:var(--bg);text-align:center;position:relative}.time-group.current .rail-time,.time-group.current .rail-period{background:0 0}.rail-time{padding:3px 0 1px;font-family:Fraunces,Georgia,serif;font-size:.98rem;font-weight:700;line-height:1}.rail-period{color:var(--ink-soft);letter-spacing:0;text-transform:uppercase;padding-bottom:4px;font-size:.66rem;font-weight:800}.rail-node{z-index:1;border:2.5px solid var(--stone-line);background:var(--card);border-radius:50%;width:11px;height:11px;position:relative}.time-group.all-taken .rail-node{border-color:var(--sage);background:var(--sage)}.time-group.current .rail-node{border-color:var(--warm);background:var(--warm);box-shadow:0 0 0 5px var(--warm-soft)}.now-row{align-items:center;margin:-2px 0 14px}.now-bar{flex:1;align-items:center;gap:9px;display:flex}.now-bar span{color:var(--warm-deep);white-space:nowrap;font-family:Fraunces,Georgia,serif;font-size:.83rem;font-weight:700}.now-bar i{background:linear-gradient(90deg,#dbb272,#dbb27200);flex:1;height:1px}.dose-list{flex:1;gap:0;min-width:0;padding-bottom:18px;display:grid}.time-group.current .dose-list{padding-bottom:0}.time-group.current .dose-row{grid-template-columns:38px minmax(0,1fr) 42px;min-height:58px;padding-top:6px;padding-bottom:6px;padding-right:0}.time-group.current .tap-circle{justify-self:end}.dose-row{text-align:left;background:0 0;border:0;border-radius:14px;grid-template-columns:38px 1fr 34px;align-items:center;gap:12px;width:100%;min-height:58px;padding:8px 4px;transition:transform .15s;display:grid}.dose-row:active{transform:scale(.99)}.dose-row.readonly{cursor:default;color:color-mix(in srgb, var(--ink) 80%, var(--stone))}.dose-row.readonly:active{transform:none}.pill-badge{width:44px;height:44px;color:var(--medicine-ink);background:var(--medicine-bg);border-radius:14px;place-items:center;display:grid}.dose-row .pill-badge{border-radius:10px;width:32px;height:32px}.dose-row .pill-badge svg{width:21px;height:21px}.pill-badge.parkinsons{--medicine-ink:#436a52;--medicine-bg:#e8efe8}.pill-badge.bp{--medicine-ink:#8c5f26;--medicine-bg:#efe2c8}.pill-badge.supplement{--medicine-ink:#496d8f;--medicine-bg:#e6eef5}.pill-badge.other{--medicine-ink:#7b5f78;--medicine-bg:#f0e7ef}.dose-copy{gap:3px;min-width:0;display:grid}.dose-copy strong{font-size:.98rem;line-height:1.18}.dose-copy span{color:var(--ink-soft);font-size:.82rem;font-weight:700}.tap-circle{border:2px solid var(--stone-line);color:#fff;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.time-group.current .dose-row:not(.taken) .tap-circle{box-shadow:0 0 0 4px var(--warm-soft);border-color:#dbb272}.taken .tap-circle{border-color:var(--sage);background:var(--sage)}.taken .dose-copy strong{color:var(--ink-soft);font-weight:600}.taken .dose-copy span{color:var(--sage-deep)}.readonly.taken .tap-circle{background:#a6aba3;border-color:#a6aba3}.readonly:not(.taken) .tap-circle{opacity:.65;border-width:1px;justify-self:center;width:24px;height:24px}.top-bar{z-index:4;min-height:52px;padding:max(12px, env(safe-area-inset-top)) 12px 10px;background:color-mix(in srgb, var(--bg) 94%, white);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:space-between;gap:8px;margin:-18px -16px 18px;position:sticky;top:0}.top-bar h1{text-align:center;flex:1;margin:0;font-size:1.35rem}.top-action,.back-button{flex:0 0 86px}.top-action{justify-content:flex-end;display:flex}.back-button{min-height:44px;color:var(--sage-deep);background:0 0;border:0;justify-content:flex-start;padding:0;font-weight:800}.summary-card,.review-section,.prescription-card{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:16px}.summary-card{gap:14px;margin-bottom:12px;display:grid}.summary-card h1{margin:4px 0 8px}.summary-card p,.caption,.meta-line{color:var(--ink-soft);margin:5px 0;font-weight:600}.eyebrow{color:var(--sage-deep);text-transform:uppercase;letter-spacing:0;font-size:.78rem;font-weight:900}.text-button{width:fit-content;color:var(--sage-deep);padding:0 14px;font-weight:900}.nav-card,.med-card,.history-card,.add-card,.prescription-card{border:1px solid var(--line);background:var(--card);text-align:left;border-radius:18px;grid-template-columns:42px 1fr 28px;align-items:center;gap:12px;width:100%;min-height:76px;margin-top:10px;padding:14px;display:grid}.nav-card>svg,.add-card>svg{color:var(--sage-deep)}.nav-card span,.med-card span,.history-card span{gap:4px;min-width:0;display:grid}.nav-card strong,.med-card strong,.history-card strong{font-size:1.05rem}.nav-card small,.med-card small,.history-card small{color:var(--ink-soft);font-size:.9rem;font-weight:650;line-height:1.25}.reminder-card{border:1px solid var(--line);background:var(--card);border-radius:18px;gap:12px;margin-top:10px;padding:14px;display:grid}.reminder-card-head{grid-template-columns:42px 1fr;align-items:center;gap:12px;display:grid}.reminder-card-head>div{gap:4px;min-width:0;display:grid}.reminder-card-head strong{font-size:1.05rem}.reminder-card-head small{color:var(--ink-soft);font-size:.9rem;font-weight:700}.reminder-icon{width:42px;height:42px;color:var(--warm-deep);background:var(--warm-soft);border-radius:14px;place-items:center;display:grid}.reminder-icon.on{color:var(--sage-deep);background:var(--sage-bg)}.reminder-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.reminder-check{min-height:38px;color:var(--ink);grid-template-columns:22px 1fr;align-items:center}.reminder-check span{align-items:center;gap:7px;display:inline-flex}.edit-screen{padding-bottom:106px}.med-list{gap:10px;display:grid}.med-card{margin-top:0}.add-card{min-height:64px;color:var(--sage-deep);grid-template-columns:42px 1fr;font-weight:900}.sticky-action{z-index:3;width:min(100%,480px);padding:12px 16px max(12px, env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 78%, transparent);position:fixed;bottom:0;left:50%;transform:translate(-50%)}.primary-button,.secondary-button,.remove-button{border:1px solid #0000;border-radius:16px;justify-content:center;align-items:center;gap:8px;min-height:52px;padding:0 18px;font-weight:900;display:inline-flex}.primary-button{color:#fff;background:var(--sage)}.primary-button:disabled{color:var(--ink-soft);background:var(--stone-line)}.secondary-button{background:var(--card);border-color:var(--line)}.remove-button{width:100%;color:var(--clay);background:#f5ede8;border-color:#ead8cf}.full{width:100%;margin-top:12px}.sheet-backdrop,.photo-overlay{z-index:20;background:#2d3a3359;position:fixed;inset:0}.sheet{background:var(--bg);width:min(100%,480px);max-height:90vh;padding:18px 16px max(18px, env(safe-area-inset-bottom));border-radius:24px 24px 0 0;gap:14px;display:grid;position:absolute;bottom:0;left:50%;overflow:auto;transform:translate(-50%)}.sheet-head{justify-content:space-between}.sheet h2,.review-section h2{letter-spacing:0;margin:0 0 10px;font-family:Fraunces,Georgia,serif}label{color:var(--ink-soft);gap:7px;font-weight:900;display:grid}input{border:1px solid var(--line);background:var(--card);width:100%;min-height:50px;color:var(--ink);border-radius:14px;padding:0 12px}.check-label{color:var(--ink);grid-template-columns:22px 1fr;align-items:center}.check-label input{min-height:22px;accent-color:var(--sage)}.time-editor{gap:10px;display:grid}.dose-editor-head{gap:3px;margin-top:2px;display:grid}.dose-editor-head span{color:var(--ink);font-weight:900}.dose-editor-head small{color:var(--ink-soft);font-weight:700}.dose-edit-row{border:1px solid var(--line);background:var(--card);border-radius:16px;grid-template-columns:104px 1fr 40px;align-items:end;gap:10px;padding:10px;display:grid}.time-select-button{border:1px solid var(--line);min-height:50px;color:var(--warm-deep);background:#f6f7f3;border-radius:14px;grid-template-columns:20px 1fr;align-items:center;gap:6px;padding:0 10px;font-weight:900;display:grid}.dose-edit-row label{gap:5px;font-size:.78rem}.dose-edit-row input{background:#f6f7f3;min-height:50px}.remove-dose-button{width:40px;height:50px;color:var(--clay);background:#f3ede8;border:0;border-radius:14px;place-items:center;display:grid}.small-button{min-height:44px;color:var(--sage-deep);padding:0 12px;font-weight:900}.sheet-actions{justify-content:stretch;gap:10px}.sheet-actions button{flex:1}.mini-sheet-backdrop{z-index:30;background:#2d3a3347;position:fixed;inset:0}.time-picker-sheet{background:var(--bg);width:min(100%,480px);padding:18px 16px max(18px, env(safe-area-inset-bottom));border-radius:24px 24px 0 0;gap:14px;display:grid;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.time-picker-display{background:var(--card);color:var(--ink);text-align:center;border-radius:18px;padding:18px;font-family:Fraunces,Georgia,serif;font-size:2.2rem;font-weight:700}.time-picker-grid{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.picker-column{gap:7px;display:grid}.picker-column>span{color:var(--ink-soft);text-align:center;font-size:.78rem;font-weight:900}.picker-column>div{border:1px solid var(--line);background:var(--card);border-radius:16px;max-height:220px;padding:6px;display:grid;overflow:auto}.picker-column button{min-height:42px;color:var(--ink-soft);background:0 0;border:0;border-radius:12px;font-weight:900}.picker-column button.selected{background:var(--sage-bg);color:var(--sage-deep)}.review-section{margin-bottom:12px}.diff-row{border-top:1px solid var(--line);gap:4px;padding:12px 0;display:grid}.diff-row:first-of-type{border-top:0}.diff-row strong{color:var(--sage-deep)}.diff-row.removed strong{color:var(--clay)}.diff-row small{color:var(--ink-soft);font-weight:700}.review-time{border-top:1px solid var(--line);grid-template-columns:86px 1fr;gap:10px;padding:10px 0;display:grid}.review-time strong{color:var(--warm-deep);font-family:Fraunces,Georgia,serif}.review-time div{flex-wrap:wrap;gap:6px;display:flex}.review-time span{background:#f1f2ee;border-radius:999px;padding:5px 9px;font-size:.9rem;font-weight:800}.review-time .new-pill{color:var(--sage-deep);background:var(--sage-bg)}.history-card{grid-template-columns:58px 1fr auto}.history-card em{text-transform:capitalize;color:var(--ink-soft);background:#eeeee9;border-radius:999px;align-self:start;padding:5px 9px;font-size:.74rem;font-style:normal;font-weight:900}.history-card em.active{background:var(--sage-bg);color:var(--sage-deep)}.prescription-thumb{border:1px solid var(--line);width:54px;height:62px;color:var(--sage-deep);background:linear-gradient(#fff,#f5f5f0);border-radius:10px;place-items:center;display:grid;position:relative}.prescription-thumb svg:last-child{color:var(--warm);position:absolute;bottom:6px;right:6px}.meta-line{margin:0 0 14px}.prescription-card{grid-template-columns:58px 1fr;margin-bottom:12px;font-weight:900}.plain-list{color:var(--ink-soft);margin:0;padding-left:18px;font-weight:700}.plain-list li{margin:8px 0}.centered{text-align:center;flex-direction:column;justify-content:center;display:flex}.centered p{color:var(--ink-soft);font-weight:700;line-height:1.45}.success-ring{width:86px;height:86px;color:var(--sage-deep);background:var(--sage-bg);border-radius:50%;place-items:center;margin:0 auto 18px;display:grid;box-shadow:inset 0 0 0 8px #5e8e7324}.photo-overlay{background:#eef1ebf5;overflow:auto}.photo-head{z-index:2;width:min(100%,480px);padding:max(12px, env(safe-area-inset-top)) 14px 10px;background:var(--bg);justify-content:space-between;align-items:center;margin:0 auto;font-weight:900;display:flex;position:sticky;top:0}.photo-pages{gap:14px;width:min(100%,480px);margin:0 auto;padding:12px 14px 32px;display:grid}.mock-prescription{color:#28332d;background:#fffdf8;border-radius:12px;min-height:590px;padding:28px 24px;box-shadow:0 16px 50px #2d3a3329}.mock-prescription img{border-radius:14px;width:56px;height:56px}.mock-prescription h2{margin:18px 0 8px;font-family:Fraunces,Georgia,serif;font-size:2rem}.mock-prescription div{border-top:1px solid #ebe6da;gap:10px;margin-top:24px;padding-top:18px;font-weight:700;display:grid}@media (width>=760px){body{padding:24px 0}.app-shell{border-radius:28px;min-height:calc(100vh - 48px);overflow:hidden}.screen,.today-screen{min-height:calc(100vh - 48px)}}
