:root{--sage: #5B8C6A;--sage-deep: #4A7558;--cream: #F7F4EF;--mint: #A8E6CF;--slate: #1A2B2B;--white: #FFFFFF;--muted: rgba(26, 43, 43, .68);--line: rgba(26, 43, 43, .14);--sage-wash: rgba(91, 140, 106, .1);--font: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fs-sm: .875rem;--fs-base: 1.0625rem;--fs-h2: 1.1875rem;--fs-h1: 1.625rem;--r-sm: 8px;--r-md: 14px;--tap: 48px;--tabbar-h: 64px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font);font-size:var(--fs-base);line-height:1.45;color:var(--slate);background:var(--cream);-webkit-text-size-adjust:100%;font-variant-numeric:tabular-nums}h1,h2{margin:0;line-height:1.2}h1{font-size:var(--fs-h1);font-weight:700;letter-spacing:-.01em}h2{font-size:var(--fs-h2);font-weight:700}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--sage);outline-offset:2px;border-radius:4px}.muted{color:var(--muted)}.boot{min-height:100vh;background:var(--cream)}.shell{max-width:560px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 10px) 12px 10px 16px;background:var(--cream);border-bottom:1px solid var(--line)}.appbar-logo{height:48px;width:auto;display:block}.appbar-right{display:flex;align-items:center;gap:4px}.env-tag{font-size:var(--fs-sm);font-weight:700;color:var(--sage-deep);border:1.5px solid var(--sage);border-radius:999px;padding:2px 10px}.screen{flex:1;padding:20px 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 28px);display:flex;flex-direction:column;gap:20px}.loading{color:var(--muted);padding:24px 0}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:560px;z-index:10;display:grid;background:var(--white);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}.tab{height:var(--tabbar-h);border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:var(--fs-sm);color:var(--muted)}.tab[aria-current=page]{color:var(--sage-deep);font-weight:700;box-shadow:inset 0 3px 0 var(--sage)}.toast{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 12px);z-index:30;pointer-events:none;padding:0 16px}.toast p{max-width:528px;margin:0 auto;padding:12px 16px;border-radius:var(--r-sm);background:var(--slate);color:var(--white);pointer-events:auto}.intro{display:flex;flex-direction:column;gap:4px}.section-title{margin-bottom:10px}.callout{background:var(--white);border-left:4px solid var(--sage);padding:12px 14px;border-radius:0 var(--r-sm) var(--r-sm) 0}.callout-error{font-weight:700}.fineprint{font-size:var(--fs-sm);color:var(--muted)}.empty{display:flex;flex-direction:column;gap:12px;padding:8px 0}.panel{display:flex;flex-direction:column;gap:14px;background:var(--white);border-radius:var(--r-md);padding:16px}.btn{min-height:var(--tap);padding:0 18px;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;text-decoration:none;cursor:pointer;border:2px solid transparent}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--sage);color:var(--white)}.btn-primary:not(:disabled):active{background:var(--slate)}.btn-secondary{background:var(--white);color:var(--sage-deep);border-color:var(--sage)}.btn-secondary:not(:disabled):active{background:var(--sage-wash)}.btn-quiet{background:none;color:var(--sage-deep);padding:0 10px}.btn-block{width:100%}.icon-btn{width:var(--tap);height:var(--tap);flex:none;border:0;background:none;color:var(--slate);border-radius:var(--r-sm);display:grid;place-items:center;cursor:pointer}.link-btn{border:0;background:none;padding:0 0 0 8px;min-height:32px;cursor:pointer;color:var(--sage-deep);font-weight:700;text-decoration:underline;text-underline-offset:3px}.actions-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:flex;flex-direction:column;gap:6px}.field>span,.times legend{font-size:var(--fs-sm);font-weight:700}.field input,.field select,.field textarea,.time-row input{min-height:var(--tap);width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--white)}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.time-row input:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-wash)}.field input[aria-invalid=true]{border-color:var(--slate);border-width:2px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check{display:flex;align-items:center;gap:12px;min-height:var(--tap);cursor:pointer}.check input{width:24px;height:24px;accent-color:var(--sage)}.times{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.time-row{display:flex;gap:6px}.login{min-height:100vh;background:var(--cream);display:flex;flex-direction:column;align-items:center;padding:calc(env(safe-area-inset-top,0px) + 48px) 20px 32px;gap:28px}.login-logo{width:min(240px,64vw);height:auto}.login-form{width:100%;max-width:400px;background:var(--white);border-radius:var(--r-md);padding:24px 20px;display:flex;flex-direction:column;gap:16px}.week-nav{display:flex;align-items:center;gap:2px;margin-left:-12px}.weekstrip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.daypill{min-height:76px;border:0;border-radius:999px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:var(--white);color:var(--slate)}.daypill-letter{font-size:var(--fs-sm);color:var(--muted)}.daypill-num{font-size:1.25rem;font-weight:700;line-height:1.1}.daypill-dots{height:12px;font-size:14px;line-height:12px;letter-spacing:1px;color:var(--sage)}.daypill.is-today{box-shadow:inset 0 0 0 2.5px var(--mint)}.daypill[aria-selected=true]{background:var(--sage);color:var(--white)}.daypill[aria-selected=true] .daypill-letter,.daypill[aria-selected=true] .daypill-dots{color:var(--white)}.day{display:flex;flex-direction:column;gap:12px}.events{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.event{background:var(--white);border-radius:var(--r-md);padding:14px 16px 10px;border-left:5px solid var(--sage)}.event-caregiver_shift{border-left-color:var(--sage)}.event-appointment{border-left-color:var(--slate)}.event-delivery,.event-reminder{border-left-color:var(--mint)}.event-visitor{border-left-color:var(--sage-deep)}.event-time{font-size:var(--fs-sm);font-weight:700;color:var(--sage-deep)}.event-title{font-size:var(--fs-h2);font-weight:700}.event-meta{font-size:var(--fs-sm)}.event-notes{margin-top:6px}.event-actions{display:flex;gap:4px;margin:4px 0 0 -10px}.doses{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}.dose-group ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.dose-time{font-size:var(--fs-base);color:var(--sage-deep);margin-bottom:8px}.dose,.prn-item{background:var(--white);border-radius:var(--r-md);padding:14px 16px;display:flex;flex-direction:column;gap:12px}.dose-given{background:var(--sage-wash)}.dose-skipped{background:transparent;border:1.5px dashed var(--line)}.dose-due{box-shadow:inset 0 0 0 2px var(--sage)}.dose-main{display:flex;flex-direction:column;gap:2px}.dose-name{font-weight:700}.dose-log{font-size:var(--fs-sm);display:flex;align-items:center;flex-wrap:wrap}.dose-state{font-size:var(--fs-sm);font-weight:700}.dose-state-due{color:var(--sage-deep)}.dose-state-overdue{color:var(--slate)}.dose-state-later{color:var(--muted);font-weight:400}.dose-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.prn{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.medlist{list-style:none;margin:0;padding:0;background:var(--white);border-radius:var(--r-md)}.medlist li{padding:12px 16px;border-bottom:1px solid var(--line)}.medlist li:last-child{border-bottom:0}.medlist .link-btn{padding-left:0}.stopped{margin-top:10px}.stopped summary{cursor:pointer;min-height:40px;display:flex;align-items:center;color:var(--muted)}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#1a2b2b66;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;background:var(--white);border-radius:18px 18px 0 0;padding:16px 16px calc(env(safe-area-inset-bottom,0px) + 20px);display:flex;flex-direction:column;gap:14px}.sheet-head{display:flex;align-items:center;justify-content:space-between}.sheet .callout{background:var(--cream)}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
