:root{--bg:#fafbf9;--ink:#254a6b;--green:#438ac0;--muted:#677e91;--line:#d9e6ed;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;background-image:radial-gradient(ellipse at 5% 42%,#e4f2fa80,transparent 42%),radial-gradient(ellipse at 95% 70%,#e7f3fa70,transparent 40%),url('/assets/paper.svg')}button,input,select{font:inherit}button{cursor:pointer;border:0;touch-action:manipulation}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #477eb2;outline-offset:4px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.shell{max-width:800px;margin:auto;padding:0 28px}header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:26px 0 0;min-height:90px}.brand{display:flex;align-items:center;gap:11px;font-size:27px;font-weight:680;letter-spacing:1.5px}.brand small{display:block;font-size:12px;letter-spacing:.8px;font-weight:400;color:#667f96}.brand-icon{width:38px;height:48px}.connection{display:flex;gap:7px;align-items:center;color:#587588;font-size:12px;white-space:nowrap}.connection i{width:8px;height:8px;background:#6b9c89;border-radius:50%}.connection.offline{color:#a5653b}.connection.offline i{background:#b97f54}.watercolor-hero{height:515px;margin:-90px -28px -18px;pointer-events:none}.watercolor-hero img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 58%;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 80%,transparent),linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 80%,transparent),linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);mask-composite:intersect}.demo-banner{font-size:12px;background:#fcf1da;border:1px solid #eedfbd;color:#806439;border-radius:10px;padding:7px 12px;margin:8px 0 4px}.page-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 2px 18px;font-size:14px;color:#4f6b83}#care-date{font-size:18px;font-weight:650;letter-spacing:.6px}#caregiver{display:flex;align-items:center;gap:3px;background:#f0f6f9;border:1px solid #cddfea;border-radius:25px;padding:3px}#caregiver>span{font-size:12px;padding-left:9px;color:#6d8293}#caregiver button{background:transparent;color:#526d86;min-width:56px;min-height:39px;padding:5px 15px;border-radius:22px}#caregiver button.active{background:linear-gradient(135deg,#78b5db,#438ac0);color:#fff}#identity{display:flex;align-items:center;font-size:13px}.text-btn{min-height:40px;padding:8px;background:none;color:#657e91}.next-card{padding:23px 27px 18px;border:1px solid #d5e8f280;border-radius:26px;background:radial-gradient(ellipse at 3% 20%,#c6e7f580,transparent 70%),radial-gradient(ellipse at 95% 10%,#deeffb90,transparent 55%),linear-gradient(145deg,#edf7fbd9,#f7fbf9b8);position:relative;isolation:isolate}.next-card:before{content:"";position:absolute;inset:0;background:url('/assets/paper.svg');opacity:.38;z-index:-1;border-radius:inherit}.next-top,.next-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.next-top{font-size:18px;font-weight:650;color:#396f98}.eye{background:#f7e5e7;color:#885f69;border-radius:20px;font-size:12px;font-weight:500;padding:3px 12px}.next-main{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:19px 0 12px}.next-number{font-size:49px;font-weight:650;line-height:1.2;color:#326d9e}.next-number small{display:block;font-size:15px;font-weight:450;margin-top:9px;color:#5e7990}.next-sub{font-size:13px;color:#607d93;margin-top:7px}.time-box{text-align:right;min-width:105px}.time-box strong{display:block;font-size:40px;line-height:1.25;font-weight:600;letter-spacing:1px;color:#326d9e}.time-box span{font-size:12px;color:#617d93;display:block;margin-top:5px}.next-note{font-size:13px;color:#5f7890;margin:0 0 14px}.deadline-box{background:#ffffffa8;border:1px solid #cfdee8;border-left:3px solid #a3c9df;border-radius:12px;padding:11px 14px;font-size:13px;color:#567088;margin-bottom:17px}.deadline-box b{font-size:15px;font-weight:650;color:#315f86}.record-btn{width:100%;min-height:66px;padding:15px 12px;border:1px solid #5a9bc782;border-radius:28px;background:linear-gradient(120deg,#6badd8,#4188bd);color:white;font-size:21px;font-weight:650;box-shadow:inset 0 2px 0 #ffffff30,0 4px 10px #558fb41a;display:flex;align-items:center;justify-content:center;gap:10px}.record-btn:not(:disabled):before{content:"";width:22px;height:22px;flex-shrink:0;background:white;-webkit-mask:url('/assets/check.svg') center/contain no-repeat;mask:url('/assets/check.svg') center/contain no-repeat}.record-btn:hover:not(:disabled){background:linear-gradient(120deg,#5ba1d0,#3379af)}.record-btn:disabled{background:#dce9ef;border-color:#cbdde7;color:#5c788c;box-shadow:none;font-size:18px;font-weight:550}.next-foot{border-top:1px solid #c6dfeb;padding-top:13px;margin-top:17px;font-size:12px;color:#5f7d92}.complete-title{font-size:26px;font-weight:600;margin:25px 0 12px}.complete-note{font-size:14px;color:#5b758c;margin-bottom:18px}.warning{background:#fff3df;border:1px solid #ecd7b4;color:#8d622d;border-radius:15px;padding:16px 18px;font-size:14px;margin:17px 0}.warning.urgent{background:#fbece7;border-color:#ebc9be;color:#9e5043}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.section-heading h2{font-size:19px;font-weight:650;margin:0}.section-heading>span{font-size:12px;color:#6e8395}.med-section{margin:27px 0 22px}.med-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.med-card{--tone:#538c80;--wash:#eaf4ed;--border:#cee2d8;background:linear-gradient(130deg,var(--wash),#ffffff90);border:1px solid var(--border);border-radius:19px;padding:14px 13px 12px;min-width:0}.med2{--tone:#4a87b0;--wash:#eaf4fc;--border:#c5ddec}.med3{--tone:#af8a43;--wash:#fbf5e5;--border:#e9ddbd}.med4{--tone:#ae7587;--wash:#faedf0;--border:#ead2db}.med-title{display:flex;gap:7px;align-items:center;margin-bottom:8px;font-size:14px;font-weight:600;color:var(--tone)}.med-badge{position:relative;display:inline-flex;justify-content:center;align-items:center;width:25px;height:35px;flex-shrink:0}.bottle-icon{width:25px;height:35px;background:var(--tone);-webkit-mask:url('/assets/bottle.svg') center/contain no-repeat;mask:url('/assets/bottle.svg') center/contain no-repeat;opacity:.8}.med-badge b{position:absolute;top:14px;font-size:10px;line-height:1.3;font-weight:600}.med-count{display:flex;align-items:baseline;gap:4px;white-space:nowrap;font-variant-numeric:tabular-nums}.med-count strong{font-size:34px;color:var(--tone);font-weight:650;line-height:1.2}.slash{font-size:23px;font-weight:300;color:#8ba0af}.goal{font-size:22px;font-weight:500}.unit{font-size:12px;color:#61778b;margin-left:2px}.med-target{font-size:10px;color:#637b8d;margin-top:3px;white-space:nowrap}.dots{display:flex;gap:3px;margin:13px 0}.dots i{flex:1;min-width:0;height:5px;background:#cbd7df85;border-radius:3px;position:relative}.dots i.done{background:var(--tone)}.dots i.minimum-mark:after{content:"";position:absolute;right:0;top:-3px;width:1px;height:11px;background:var(--tone);opacity:.7}.med-last{font-size:12px;line-height:1.55;min-height:38px;color:#526e84}.med-status{font-size:11px;color:var(--tone);line-height:1.55;margin-top:6px;min-height:18px}.med-note{border-top:1px solid var(--border);font-size:11px;color:#677d8d;padding-top:8px;margin-top:9px;min-height:26px}.last-section{margin:24px 0}.last-box{display:flex;align-items:center;gap:12px;padding:17px 18px;background:#ffffffb8;border:1px solid #dce8ef;border-radius:18px}.record-avatar{flex-shrink:0;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#dfedf8;color:#497d9c;font-size:12px;font-weight:550}.record-avatar.partner{background:#f7e6eb;color:#9e6f82}.record-main{flex:1;min-width:0}.record-main p{font-size:14px;margin:0}.record-main small{font-size:11px;color:#748999;display:block;margin-top:2px}.last-box time,.record-row time{font-size:17px;color:#466e8e;font-variant-numeric:tabular-nums}.undo{display:block;background:transparent;color:#956e64;text-decoration:underline;font-size:12px;min-height:36px;padding:4px 0 0}.simple-details{border:1px solid #dae6ed;border-radius:15px;background:#ffffff70;margin:12px 0;font-size:14px;overflow:hidden}.simple-details>summary{min-height:57px;display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:15px 42px 15px 17px;font-weight:550;position:relative;touch-action:manipulation}.simple-details>summary::-webkit-details-marker{display:none}.simple-details>summary:after{content:"";position:absolute;right:17px;width:18px;height:18px;background:#7895ac;-webkit-mask:url('/assets/chevron.svg') center/contain no-repeat;mask:url('/assets/chevron.svg') center/contain no-repeat}.simple-details[open]>summary:after{transform:rotate(180deg)}.simple-details>summary>span{margin-left:auto;font-size:11px;font-weight:400;color:#6f8597;white-space:nowrap}.simple-details[open]>summary{border-bottom:1px solid #e0eaf0;background:#f0f7fa99}.simple-details>div,.simple-details>p{margin-left:17px;margin-right:17px}.manual-entry>summary{font-size:13px}.subtle{font-size:12px;color:#6c8294}.manual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.manual-record{min-height:74px;padding:10px;background:#e8f3fa;border:1px solid #c8dfea;color:#356b92;border-radius:13px}.manual-record b{display:block;font-weight:550;font-size:14px}.manual-record small{font-size:11px;display:block;margin-top:5px}.manual-record:disabled{background:#edf1f3;color:#7b8e9d;border-color:#dae3e8}.record-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid #e0e9ee;padding:15px 0}.record-row:last-child{border-bottom:0}.record-row.voided{opacity:.6}.record-row.voided .record-main p{text-decoration:line-through}.slot{display:flex;align-items:center;gap:16px;border-bottom:1px solid #e0e9ee;padding:14px 0}.slot:last-child{border-bottom:0}.slot-time{font-size:19px;font-weight:550;min-width:58px;color:#477da3;font-variant-numeric:tabular-nums}.slot-time small{display:block;font-size:10px;font-weight:400;color:#7890a1}.slot-title{font-size:14px}.slot-detail{font-size:11px;color:#71889a}.tag{font-size:10px;margin-left:auto;white-space:nowrap;color:#5a86a4;background:#e7f1f7;border-radius:20px;padding:3px 8px}.history-row{font-size:12px;padding:15px 0;border-bottom:1px solid #e0e9ee}.empty{font-size:13px;color:#748a9b;padding:12px 0}.instructions p{font-size:13px;line-height:1.85;color:#61798e;margin:15px 0}.login-panel{max-width:440px;margin:15px auto 50px;border:1px solid #d4e4ed;background:#ffffffa8;border-radius:23px;padding:30px}.login-paw{display:block;margin-bottom:18px}.eyebrow{font-size:12px;color:#738b9e}.login-panel h1{font-size:25px;margin:13px 0}.login-panel>p{font-size:13px;color:#6e8598}.login-panel label{display:block;font-size:14px;color:#526e87;margin:18px 0}.login-panel input,.login-panel select{display:block;width:100%;min-height:48px;margin-top:8px;padding:11px 12px;border:1px solid #c9dce8;border-radius:11px;background:#fbfdfe;color:#294c68}.primary{background:linear-gradient(120deg,#6aaed7,#4188bd);color:white;border:1px solid #5191bf;border-radius:22px;padding:13px 20px;min-height:51px}.login-panel .primary{width:100%;font-size:16px}.login-panel #login-error{font-size:13px;color:#a26055}footer{text-align:center;padding:26px 0 30px;color:#7890a2;font-size:11px}footer:before{content:"";display:block;width:120px;height:15px;background:url('/assets/wave.svg') center/contain no-repeat;margin:0 auto 8px}footer>span{display:block;margin:3px 0}footer>span:first-child{font-size:12px;letter-spacing:1px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:92%;padding:15px 20px;background:#315d7c;color:#fff;border:1px solid #6e98b4;border-radius:15px;font-size:14px;box-shadow:0 5px 24px #35587430;z-index:10}.phone-preview{background:#e9eff2;display:flex;justify-content:center;padding:20px 0}.phone-preview iframe{width:390px;height:2150px;border:0;border-radius:20px;box-shadow:0 10px 70px #325c7420;background:var(--bg)}
body{font-size:14px}.shell{max-width:460px;padding:0 18px}header{padding:20px 2px 0;min-height:77px;gap:8px}.brand{font-size:23px;gap:8px;letter-spacing:1px}.brand small{font-size:10px;letter-spacing:.3px}.brand-icon{width:30px;height:39px}.connection{font-size:10px;gap:5px}.connection i{width:6px;height:6px}.watercolor-hero{margin:-77px -18px -13px;height:310px}.watercolor-hero img{object-position:center 57%;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 21%,#000 80%,transparent),linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 21%,#000 80%,transparent),linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}.demo-banner{font-size:10px;margin-top:4px;padding:5px 9px}.page-top{padding:15px 1px 14px;gap:6px}#care-date{font-size:15px;letter-spacing:0}#caregiver{padding:2px;gap:0}#caregiver>span{display:none}#caregiver button{font-size:13px;min-height:36px;min-width:52px;padding:4px 12px}#identity{font-size:12px}.next-card{padding:19px 18px 15px;border-radius:23px}.next-top{font-size:17px}.eye{font-size:11px;padding:3px 10px}.next-main{padding:17px 0 11px}.next-number{font-size:41px}.next-number small{font-size:14px;margin-top:7px}.next-sub{font-size:12px}.time-box strong{font-size:34px}.time-box span{font-size:11px}.next-note{font-size:12px;margin-bottom:12px}.deadline-box{font-size:12px;padding:9px 11px;margin-bottom:14px}.deadline-box b{font-size:14px}.record-btn{font-size:18px;min-height:62px;gap:6px;padding:13px 8px}.record-btn:disabled{font-size:16px}.record-btn:not(:disabled):before{width:18px;height:18px}.next-foot{font-size:10px;gap:6px;padding-top:11px;margin-top:14px}.med-section{margin:24px 0 20px}.section-heading{margin-bottom:12px;gap:6px}.section-heading h2{font-size:17px}.section-heading>span{font-size:10px}.med-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.med-card{padding:13px 14px;border-radius:16px}.med-count strong{font-size:32px}.med-last{font-size:12px}.last-box{padding:13px 12px;gap:9px}.record-avatar{width:31px;height:31px;font-size:10px}.record-main p{font-size:12px}.record-main small{font-size:10px}.last-box time,.record-row time{font-size:14px}.simple-details>summary{min-height:55px;padding:13px 38px 13px 14px;font-size:13px;gap:6px}.simple-details>summary>span{font-size:10px}.simple-details>summary:after{right:13px;width:16px;height:16px}.simple-details>div,.simple-details>p{margin-left:14px;margin-right:14px}.slot{gap:10px}.slot-time{font-size:17px;min-width:52px}.slot-title{font-size:13px}.slot-detail{font-size:10px}.tag{font-size:9px;padding:3px 6px}.history-row{font-size:11px}.warning{font-size:13px;padding:13px 14px}.login-panel{padding:24px;margin:8px auto 30px}.login-panel h1{font-size:23px}footer{padding:23px 0 26px;font-size:10px}
@media(max-width:350px){.shell{padding:0 12px}.brand{font-size:21px}.brand small{font-size:9px}.connection{font-size:9px}.next-number{font-size:36px}.time-box strong{font-size:30px}.next-card{padding:17px 14px}.med-card{padding:11px}.next-foot{font-size:9px}.record-btn{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:350px){.watercolor-hero{margin-left:-12px;margin-right:-12px}}

/* Phone layout, with a stable canvas and no sideways rubber-banding. */
html{width:100%;overflow-x:clip;overscroll-behavior:none;scrollbar-gutter:stable;scroll-behavior:auto}
body{width:100%;min-width:280px;min-height:100svh;overflow-x:clip;overscroll-behavior:none;touch-action:pan-y pinch-zoom}
.shell{width:100%;max-width:460px;overflow-anchor:none}
#connection{min-width:80px;justify-content:flex-end}
#next-content{min-height:292px}
.next-card{contain:layout}
.next-main,.next-top,.page-top,.section-heading{min-width:0}
.next-number,.time-box strong,#record-dose{font-variant-numeric:tabular-nums}
#record-dose{height:62px;font-size:16px}
.record-avatar{overflow:hidden;white-space:nowrap}
.record-main{overflow-wrap:anywhere}
.record-main p{line-height:1.65}
#last-record{min-height:145px}
.undo-panel{display:flex;align-items:center;gap:8px;margin-top:9px;padding:9px 11px;border:1px solid #c8dce9;border-radius:13px;background:#f0f7fb}
.undo-panel small{flex:1;font-size:10px;color:#61798d;line-height:1.6}
.undo-record{flex-shrink:0;min-height:44px;padding:9px 12px;border:1px solid #c39b82;border-radius:11px;background:#fff9f2;color:#805a43;font-size:12px;font-weight:600}
.undo-record:disabled{opacity:.5}
#toast{width:min(92%,410px);min-height:64px;bottom:max(18px,env(safe-area-inset-bottom));text-align:center}
@media(max-width:350px){#next-content{min-height:310px}.undo-panel{align-items:stretch;flex-direction:column}.undo-record{width:100%}}

.undo-panel{flex-wrap:wrap}.undo-record{min-width:102px}.undo-cancel{width:100%;min-height:44px;background:transparent;color:#58778e;border-top:1px solid #d9e6ef;font-size:12px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.login-panel input,.login-panel select{font-size:16px}

.med-status{min-height:35px}
