:root{--bg: #efe8dc;--ink: #1a2421;--muted: #5c675f;--card: #fffdf8;--line: #e3d9c8;--teal: #134e4a;--teal-soft: #e5f2ef;--amber: #8a4b12;--amber-soft: #f8ecdc;--good: #1d6b45;--good-soft: #e5f3eb;--warn: #8a3b12;--warn-soft: #f8e6dc;--in-range-soft: #d6ecdc;--out-of-range: #a82a20;--out-of-range-soft: #f8dcd8;--shadow: 0 18px 50px rgba(38, 32, 22, .08);--teal-fill: #134e4a;--on-teal: #fff;--button: #1a2421;--on-button: #fff;--glow-warm: #f7f1e6;--glow-cool: #d7ebe4;--field: #fff;--field-sunk: #f6f1e8;--pill: #e4dfd4;--pill-disabled: #f0ece4;--ink-disabled: #b0b6b2;--card-edge: rgba(255, 255, 255, .7);--focus-ring: rgba(19, 78, 74, .12);--shadow-strong: rgba(26, 36, 33, .28);--shadow-soft: rgba(38, 32, 22, .16);--shadow-faint: rgba(38, 32, 22, .05);--dialog-shadow: rgba(26, 36, 33, .22);--backdrop: rgba(26, 36, 33, .46);--no-bolus: #efeeea;--nav-disabled: #f3f1eb;--nav-disabled-ink: #9aa8a4;--marker: #9aada6;--timeline: rgba(19, 78, 74, .35);--log-card: #fff;--log-inputs: #f6f3ed;--neutral: #e7e2d8;--success: #16884a;--on-success: #fff;--success-shadow: rgba(22, 136, 74, .35);--help-morning: #f8ecdc;--help-lunch: #f5f0d8;--help-dinner: #e5f2ef;--help-overnight: #dfe6ef;--radius: 22px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #151917;--ink: #ece7dd;--muted: #a3ada6;--card: #1e2421;--line: #343d39;--teal: #8fd3c5;--teal-soft: #1d3833;--amber: #e9b47f;--amber-soft: #392b1c;--good: #8fd6ac;--good-soft: #1b3326;--warn: #f2a98a;--warn-soft: #3b251e;--in-range-soft: #1d3a29;--out-of-range: #ff8f82;--out-of-range-soft: #43211e;--shadow: 0 18px 50px rgba(0, 0, 0, .35);--teal-fill: #2a6c64;--on-teal: #fff;--button: #8fd3c5;--on-button: #10231f;--glow-warm: #1d211c;--glow-cool: #142a26;--field: #141816;--field-sunk: #171c1a;--pill: #2d3532;--pill-disabled: #212725;--ink-disabled: #5d6662;--card-edge: rgba(255, 255, 255, .05);--focus-ring: rgba(143, 211, 197, .22);--shadow-strong: rgba(0, 0, 0, .5);--shadow-soft: rgba(0, 0, 0, .45);--shadow-faint: rgba(0, 0, 0, .25);--dialog-shadow: rgba(0, 0, 0, .55);--backdrop: rgba(0, 0, 0, .62);--no-bolus: #262c29;--nav-disabled: #202624;--nav-disabled-ink: #5d6662;--marker: #4d5f58;--timeline: rgba(143, 211, 197, .35);--log-card: #161b19;--log-inputs: #1b201e;--neutral: #2d3532;--success: #1d7a46;--on-success: #fff;--success-shadow: rgba(0, 0, 0, .45);--help-morning: #392b1c;--help-lunch: #34301b;--help-dinner: #1d3833;--help-overnight: #202937}}:root{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;color:var(--ink);background:linear-gradient(to bottom,var(--bg) 0,var(--bg) 24px,transparent 160px),radial-gradient(900px 420px at -10% -20%,var(--glow-warm) 0%,transparent 55%),radial-gradient(700px 380px at 110% -10%,var(--glow-cool) 0%,transparent 50%),var(--bg)}*{box-sizing:border-box;touch-action:manipulation}html,body{max-width:100%;overflow-x:clip;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation}html.safari,html.safari *{touch-action:pan-y}input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}body{margin:0;min-height:100dvh}#home{position:fixed;inset:0;z-index:1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none;padding:max(28px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:linear-gradient(to bottom,var(--bg) 0,var(--bg) 24px,transparent 160px),radial-gradient(900px 420px at -10% -20%,var(--glow-warm) 0%,transparent 55%),radial-gradient(700px 380px at 110% -10%,var(--glow-cool) 0%,transparent 50%),var(--bg);transition:transform .18s cubic-bezier(.32,.72,0,1)}#home.is-parked{transform:translate(-100%);pointer-events:none}.app{width:min(100%,40rem);margin:0 auto}.eyebrow-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}#about-open{flex:none;display:grid;place-items:center;width:28px;height:28px;min-height:28px;margin:-6px 0;padding:0;border-radius:50%;background:transparent;color:var(--teal)}#about-open svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.eyebrow{margin:0;min-width:0;color:var(--teal);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.title-actions{display:flex;align-items:center;gap:8px;flex:none}h1{margin:0;min-width:0;font-size:clamp(2.2rem,6vw,3.3rem);line-height:.95;letter-spacing:-.045em;font-weight:650}.header-icon{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1.5px solid var(--line);border-radius:50%;background:var(--card);color:var(--teal)}.header-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#about-open svg circle:last-child,#log-open svg circle{fill:currentColor;stroke:none}dialog{width:min(32rem,calc(100% - 32px));margin:auto;padding:0;border:0;border-radius:22px;background:var(--card);color:inherit;box-shadow:0 24px 70px var(--dialog-shadow);overscroll-behavior:none}dialog::backdrop{background:var(--backdrop)}.about-panel{padding:18px 18px 22px}.about-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.about-panel h2,.settings-panel h2{margin:0;font-size:1.45rem;letter-spacing:-.03em}.about-panel p{margin:14px 0 0;color:var(--muted);font-size:1.02rem;line-height:1.5}#about .about-panel{display:grid;gap:14px}#about .about-panel{padding-top:0}#about .about-head{position:sticky;top:0;z-index:1;margin:0 -18px;padding:18px 18px 10px;background:var(--card)}#about .about-panel p{margin:0}#about h3{margin:0;font-size:1.02rem;letter-spacing:-.01em}#about b{color:var(--ink);font-weight:650}.help-lead{font-size:1.08rem}.help-icon{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--teal-soft);color:var(--teal)}.help-icon svg,.help-effect svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.help-steps,.help-tips,.help-day{margin:0;padding:0;list-style:none}.help-steps{display:grid;gap:12px;counter-reset:help-step}.help-steps li,.help-tips li{display:flex;align-items:flex-start;gap:12px}.help-steps li{counter-increment:help-step}.help-steps .help-icon{position:relative}.help-steps .help-icon:after{content:counter(help-step);position:absolute;top:-3px;right:-3px;display:grid;place-items:center;width:18px;height:18px;border:2px solid var(--card);border-radius:50%;background:var(--teal-fill);color:var(--on-teal);font-size:.68rem;font-weight:700}.help-steps li>div{display:grid;gap:2px;padding-top:1px}#about .help-steps p,#about .help-tips p,#about .help-note,#about .help-safety p{font-size:.95rem;line-height:1.45}#about .help-heading{margin-top:6px}.help-maths{display:grid;grid-template-columns:1fr 1fr;gap:10px}.help-effect{display:grid;justify-items:center;gap:6px;padding:14px 10px;border-radius:16px;text-align:center}.help-effect.is-up{background:var(--amber-soft);color:var(--amber)}.help-effect.is-down{background:var(--teal-soft);color:var(--teal)}.help-effect svg{width:28px;height:28px;stroke-width:2.2}#about .help-effect p{font-size:.9rem;line-height:1.3}.help-day{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;border-radius:14px}.help-day li{display:grid;gap:2px;padding:10px 4px;text-align:center;font-size:.8rem;color:var(--muted)}.help-day li:nth-child(1){background:var(--help-morning)}.help-day li:nth-child(2){background:var(--help-lunch)}.help-day li:nth-child(3){background:var(--help-dinner)}.help-day li:nth-child(4){background:var(--help-overnight)}.help-day b{font-size:.85rem}.help-tips{display:grid;gap:12px;margin-top:6px}.help-safety{display:flex;align-items:flex-start;gap:12px;margin-top:6px;padding:14px;border-radius:16px;background:var(--warn-soft)}.help-safety .help-icon{background:var(--card);color:var(--warn)}.help-safety div{display:grid;gap:4px}#about-close,#settings-close,#dishes-close,#log-close,#log-add-open{flex:none;width:40px;height:40px;padding:0;border-radius:50%;background:var(--teal-soft);color:var(--teal);font-size:1.6rem;line-height:1}#log-add-open[hidden]{display:none}.card{margin-top:22px;padding:18px;background:var(--card);border:1px solid var(--card-edge);border-radius:var(--radius);box-shadow:var(--shadow)}label,legend{display:block;font-size:.92rem;font-weight:650}.field{display:flex;align-items:center;gap:10px;margin-top:8px;padding:4px 14px;border:1.5px solid var(--line);border-radius:16px;background:var(--field)}.field:has(.suffix){padding-right:4px}.field:focus-within{border-color:var(--teal);box-shadow:0 0 0 4px var(--focus-ring)}input[type=text],input[type=date],input[type=time],textarea,select{width:100%;border:0;background:transparent;color:inherit;font:inherit;font-size:1.35rem;font-variant-numeric:tabular-nums;padding:12px 0}input:focus,select:focus,textarea:focus{outline:none}textarea{resize:vertical;min-height:4.5rem;font-size:1.05rem;line-height:1.4}.add-note{margin:0}.add-note summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer;font-size:.92rem;font-weight:650;list-style:none}.add-note summary::-webkit-details-marker{display:none}.add-note summary:after{content:"";flex:none;width:.55rem;height:.55rem;margin-top:-.2rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}.add-note[open] summary:after{margin-top:.2rem;transform:rotate(-135deg)}.add-note summary:focus-visible{outline:2px solid var(--teal);outline-offset:4px;border-radius:8px}.add-note .field{margin-top:0}.note-field{align-items:stretch}.note-field textarea{flex:1;min-width:0}.note-field textarea::placeholder{color:var(--muted);font-weight:500}.note-done{display:none}@media(max-width:520px),(hover:none)and (pointer:coarse){body:has(.note-field:focus-within){overflow:hidden}.note-field:focus-within{position:fixed;top:var(--vv-top, 0px);left:var(--vv-left, 0px);z-index:50;display:flex;flex-direction:column;gap:12px;width:var(--vv-width, 100%);height:var(--vv-height, 100dvh);margin:0;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));border:0;border-radius:0;background:var(--bg);box-shadow:none}.note-field:focus-within textarea{flex:1;min-height:0;resize:none;padding:8px 4px;font-size:1.15rem}.note-field:focus-within .note-done{display:block;flex:none;width:100%;box-shadow:0 12px 30px var(--shadow-strong)}}.suffix{flex:none;padding:10px 12px;border-radius:12px;background:var(--teal-soft);color:var(--teal);font-size:.82rem;font-weight:700}.control-label{margin:0;font-size:.92rem;font-weight:650}.glucose-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.unit-label{margin:0;padding:8px 12px;border-radius:999px;background:var(--teal-fill);color:var(--on-teal);font-size:.82rem;font-weight:750}.units{display:grid;grid-template-columns:1fr 1fr;width:max-content;margin-top:8px;padding:3px;border:1.5px solid var(--line);border-radius:999px;background:var(--field-sunk)}.units label{position:relative;display:flex;align-items:center;justify-content:center;min-height:36px;min-width:4.6rem;padding:6px 10px;border-radius:999px;font-size:.82rem;font-weight:750;cursor:pointer}.units input{position:absolute;opacity:0;inset:0;margin:0}.units label:has(input:checked){background:var(--teal-fill);color:var(--on-teal)}.units label:focus-within{outline:2px solid var(--teal);outline-offset:2px}.split{display:flex;align-items:center;gap:6px;margin-top:8px;padding:6px;border:1.5px solid var(--line);border-radius:16px;background:var(--field)}.split:focus-within{border-color:var(--teal);box-shadow:0 0 0 4px var(--focus-ring)}.step-pill{display:flex;flex:none;border-radius:999px;background:var(--pill);overflow:hidden}.step-pill[hidden]{display:none}.split button{flex:none;width:40px;height:40px;min-height:40px;padding:0;border-radius:999px;background:var(--pill);color:var(--muted);font-size:1.35rem;font-weight:650;line-height:1}.step-pill button{border-radius:0;background:transparent}.step-pill button+button{box-shadow:inset 1px 0 0 var(--line)}.split button:disabled{color:var(--ink-disabled);background:var(--pill-disabled);cursor:default}.step-pill button:disabled{background:transparent}.split-value{flex:1;display:flex;align-items:center;justify-content:center;min-width:0}.split input{flex:none;width:3.4ch;min-width:0;padding:8px 0;border:0;background:transparent;text-align:right;font-size:1.7rem;font-variant-numeric:tabular-nums}.split input.tenth{width:1.15ch;text-align:left}.split .point{flex:none;font-size:1.7rem;font-weight:650;line-height:1}.split:has(.point[hidden]) input{width:4.5ch;text-align:center}.carb-split input{width:4.5ch;text-align:right}input::placeholder{color:inherit;opacity:1}.ghost-decimal{flex:none;color:var(--ink);font-size:1.7rem;font-variant-numeric:tabular-nums;pointer-events:none}.ghost-decimal[hidden]{display:none}.carb-unit{flex:none;margin-left:4px;color:var(--muted);font-size:1.1rem;font-weight:650}.split button[hidden],.split .point[hidden],.split input[hidden]{display:none}.glucose-source{display:grid;grid-template-rows:1fr;margin:10px 2px 0;color:var(--muted);font-size:.88rem;font-weight:650;line-height:1.35}.glucose-source[hidden]{display:grid;grid-template-rows:0fr;margin-top:0;opacity:0;visibility:hidden;transition:grid-template-rows .25s ease,margin-top .25s ease,opacity .2s ease,visibility 0s .25s}.glucose-source-copy{display:flex;align-items:flex-start;gap:8px;min-height:0;margin:0;overflow:hidden}.glucose-source svg{flex:none;width:18px;height:18px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#dose-form{display:grid;gap:12px}#dose-form>.card{margin-top:0}.include-check{display:flex;align-items:center;gap:8px;margin:0;cursor:pointer}.include-check input{width:1.15rem;height:1.15rem;margin:0;accent-color:var(--teal)}.include-check input:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.card.is-skipped>:not(.include-check,.carbs-head){display:none}.dose-card:not(:has(>.result:not([hidden]),>.check:not([hidden]),>.include-check)){display:none}.dose-card .result{margin-top:8px}.target-detail>:first-child{margin-top:8px}.target-detail .figure{margin-top:0}.result[hidden]+#with-basal-wrap{margin-top:2px}.fibre{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-top:10px}.carbs-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dishes-open{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 14px 6px 10px;background:var(--teal-soft);color:var(--teal);font-size:.92rem}.dishes-open svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.dish-finder{margin-top:4px}.dish-finder[hidden],.dish-form-open[hidden],.dish-form-actions>[hidden]{display:none}.dish-search{margin-top:0}.dish-search svg{flex:none;width:20px;height:20px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}#dish-search{width:100%;min-width:0;padding:12px 0;border:0;background:transparent;color:inherit;font:inherit;font-size:1.05rem;-webkit-appearance:none;appearance:none}#dish-search::-webkit-search-cancel-button{-webkit-appearance:none}.dish-finder .dishes-hint{margin-top:8px}.dish-form-open{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:18px;background:var(--teal-soft);color:var(--teal)}.dish-form-open span{font-size:1.3rem;line-height:1}.dish-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:4px}.dish-form-actions #dish-add{flex:1}.dish-pick-options{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:14px}.dish-pick-options[hidden],.dish-option[hidden]{display:none}.dish-option{display:flex;align-items:center;gap:10px}.dish-option-label{color:var(--muted);font-size:.82rem;font-weight:650}.dish-units{margin-top:0}.dish-units label{min-width:0;min-height:34px;padding:6px 12px}.dish-portion-row{flex:1 1 100%}.dish-portions{flex:1;grid-template-columns:repeat(8,minmax(0,1fr));width:auto;min-width:0}.dish-portions label{padding-inline:0}.dish-edit{position:relative;display:grid;place-items:center;flex:none;width:26px;height:26px;min-height:26px;padding:0;border-radius:50%;background:var(--teal-soft);color:var(--teal)}.dish-edit svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.dish-edit:after{content:"";position:absolute;inset:-9px}.dish .dish-edit+.log-remove{margin-left:8px}.dish-list{display:grid;gap:10px;margin:16px 0 0;padding:0;list-style:none}.dish-list[hidden],.dish-empty[hidden]{display:none}.dish{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;background:var(--card);border:1px solid var(--card-edge);border-radius:18px;box-shadow:var(--shadow)}.dish-pick{display:grid;flex:1;gap:2px;min-width:0;padding:10px 12px;border-radius:14px;background:transparent;color:var(--ink);text-align:left}.dish-pick:active{background:var(--teal-soft)}.dish-name{overflow:hidden;font-size:1.05rem;text-overflow:ellipsis;white-space:nowrap}.dish-grams-text{color:var(--muted);font-size:.88rem;font-weight:600}.dish .log-remove{flex:none}.dish-empty{margin:14px 2px 0;color:var(--muted)}.dish-form h3{margin:0 0 14px;font-size:1.1rem}.dish-form #dish-name{font-size:1.1rem}.dish-grams{margin-top:14px}.dish-grams>.split{margin-top:8px}.dish-form .hint{margin:10px 2px 0}.fibre[hidden]{display:none}.fibre label{color:var(--muted);font-size:.82rem}.fibre-split.split{margin-top:0;padding:3px;gap:4px;border-radius:12px}.split.fibre-split button{width:36px;height:24px;min-height:24px;font-size:.9rem}.fibre-split input{padding:4px 0;font-size:1.15rem}.fibre-split .carb-unit{font-size:.85rem}.net-carbs{display:grid;grid-template-rows:1fr;margin:6px 2px 0;color:var(--muted);font-size:.8rem;text-align:right;transition:grid-template-rows .25s ease,margin-top .25s ease,opacity .2s ease .05s}.net-carbs[hidden]{display:grid;grid-template-rows:0fr;margin-top:0;opacity:0;visibility:hidden;transition:grid-template-rows .25s ease,margin-top .25s ease,opacity .2s ease,visibility 0s .25s}.net-carbs p{min-height:0;margin:0;overflow:hidden}.check{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.check input{width:1.15rem;height:1.15rem;margin:0;accent-color:var(--teal)}.check input:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.check[hidden]{display:none}.basal-list{display:grid;gap:10px}.basal-list:empty{display:none}.control-label+.basal-list{margin-top:10px}.basal-row{display:grid;grid-template-columns:6.5rem minmax(0,1fr);gap:8px;align-items:center}.basal-period{margin:0;font-weight:650}.basal-row .field{margin-top:0}.basal-row .field input{width:auto;flex:1;min-width:0}.basal-hours{flex:none;color:var(--muted);font-size:.85rem;font-weight:500;white-space:nowrap;pointer-events:none}.basal-history{grid-column:1 / -1;margin:0;color:var(--muted);font-size:.85rem;line-height:1.4;white-space:pre-line}.basal-history:empty{display:none}.result:not([hidden])+#with-basal-wrap{margin-top:14px}.result{margin-top:16px;padding:20px 18px 16px;border-radius:20px;background:var(--teal-soft)}.result.insulin{background:var(--teal-soft)}.result.no-bolus{background:var(--no-bolus)}.result.error{background:var(--warn-soft)}.no-bolus-copy{margin:0;color:var(--muted);font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.kicker{margin:0;font-size:.78rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.result.insulin .kicker{color:var(--teal)}.figure{display:flex;align-items:baseline;gap:10px;margin:6px 0 0;font-size:clamp(4rem,16vw,5.4rem);line-height:.85;letter-spacing:-.06em;font-variant-numeric:tabular-nums;font-weight:650}.figure span{font-size:1.1rem;letter-spacing:0;font-weight:650}.carb-callout{margin:10px 0 0;color:var(--amber);font-size:1.35rem;font-weight:750}.detail,.placeholder{margin:12px 0 0;line-height:1.45}.detail{font-size:1.02rem}.placeholder{color:var(--muted)}.working{margin-top:12px}.working summary{cursor:pointer;color:var(--muted);font-weight:650}.working ul{margin:8px 0 0;padding-left:1.1rem;color:var(--muted);line-height:1.45}.log-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}#save-log{flex:1;min-width:10rem}.log-save{position:sticky;bottom:max(12px,env(safe-area-inset-bottom));z-index:5;display:grid;gap:12px;margin-top:22px}.log-save:has(>.card:not([hidden])){padding:14px;background:var(--card);border:1px solid var(--card-edge);border-radius:var(--radius);box-shadow:var(--shadow)}.log-save>.card{margin:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none}.log-save .figure{font-size:clamp(2.8rem,12vw,3.6rem)}.log-save .glucose-source{font-weight:400}.log-save .result{margin-top:8px;padding:14px 16px 12px}.log-save:has(>.card:not([hidden])) #save-log,.log-save:has(>.card:not([hidden])) #log-add-button{box-shadow:none}#save-log{box-shadow:0 12px 30px var(--shadow-strong)}.log-save .save-note:not(:empty){padding:8px 12px;border-radius:12px;background:var(--card);box-shadow:var(--shadow)}.log-save:has(>.card:not([hidden])) .save-note:not(:empty){padding:0;background:none;box-shadow:none}.log-save .save-note:empty{display:none}.log-save.is-covering:has(>.card:not([hidden])){box-shadow:0 -12px 22px var(--shadow-soft),var(--shadow)}@media(min-width:521px){.log-save:has(>.card:not([hidden])){transition:margin .2s ease,width .2s ease}#log-add>.log-save.is-covering:has(>.card:not([hidden])){margin-left:calc(-1*max(18px,env(safe-area-inset-left)));margin-right:calc(-1*max(18px,env(safe-area-inset-right)))}#home>.log-save:has(>.card:not([hidden])){margin-top:36px;margin-bottom:max(12px,env(safe-area-inset-bottom))}#home>.log-save.is-covering:has(>.card:not([hidden])){width:calc(min(100%,40rem) + 36px);margin-left:auto;margin-right:auto}}.recent-bolus{display:flex;align-items:flex-start;gap:10px;margin:12px 0 0;padding:10px 12px;border-radius:14px;background:var(--warn-soft);color:var(--warn);font-size:.88rem;line-height:1.4;text-align:left}.recent-bolus svg{flex:none;width:20px;height:20px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.recent-bolus strong{font-weight:700}.save-note{min-height:1.3em;margin:8px 2px 0;color:var(--teal);font-size:.92rem;font-weight:650}.app-view{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:var(--bg);color:inherit;overscroll-behavior:none}.app-view:focus{outline:none}.app-view.is-open{display:block;position:fixed;inset:0;z-index:20;overflow:auto;transform:translate(100%);transition:transform .18s cubic-bezier(.32,.72,0,1)}.app-view.is-open.is-active{transform:none}.app-view.is-open.is-parked{z-index:10;transform:translate(-100%);pointer-events:none}html:has(dialog[open]),html:has(.app-view.is-open){overflow:hidden}html.is-sliding #home,html.is-sliding .app-view.is-open{overflow-y:hidden}.log-panel{display:flex;flex-direction:column;box-sizing:border-box;width:min(100%,40rem);min-height:100%;margin-inline:auto;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.panel-actions{position:sticky;top:max(18px,env(safe-area-inset-top));z-index:2;display:flex;justify-content:flex-end;align-items:flex-start;gap:8px;height:0;min-height:0}.panel-actions+.about-head{min-height:40px;padding-right:52px}#log .panel-actions+.about-head{padding-right:100px}.log-day-card{margin:8px 0 0}.log-day-card .day-graph,.log-day-card .log-empty{margin-top:0}.log-nav{display:flex;align-items:center;gap:8px;margin-top:12px}.log-nav>button{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;background:var(--teal-soft);color:var(--teal)}.log-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.log-nav>button:disabled{color:var(--nav-disabled-ink);background:var(--nav-disabled);cursor:default}.log-date{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:44px;container-type:inline-size}#log-date-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:clamp(.68rem,calc((100cqi - 46px) / 16.2),1.02rem);font-weight:650;letter-spacing:-.02em;line-height:1.15}#log-calendar{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;background:transparent;color:var(--teal)}#log-calendar:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.log-date input{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;pointer-events:none}.log-empty{margin:16px 0 0;color:var(--muted)}.log-day{margin:18px 0 0;color:var(--teal);font-size:.78rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.day-graph{display:block;width:100%;height:auto;margin-top:8px}.day-graph .grid{stroke:var(--line);stroke-width:1}.day-graph .range{fill:var(--in-range-soft)}.day-graph .trace{fill:none;stroke:var(--teal);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.day-graph .target-line{fill:none;stroke:var(--amber);stroke-width:2;stroke-dasharray:0 5;stroke-linecap:round}.day-graph .trend{stroke:var(--teal);stroke-width:2;stroke-dasharray:3 4;stroke-linecap:round;opacity:.45}.day-graph .point{fill:var(--card);stroke:var(--teal);stroke-width:2}.day-graph text{fill:var(--muted);font-size:11px;font-family:inherit}.section-heading{margin:22px 4px 0;font-size:1.05rem;font-weight:700;text-align:center}.section-heading+main{margin-top:10px}.log-entries-head{display:flex;justify-content:center;margin-top:22px}.log-entries-head .section-heading{margin:0}.log-timeline{position:relative;margin-top:10px;padding-top:28px}.log-direction{position:absolute;top:4px;left:-3px;z-index:1;width:20px;height:20px;min-height:20px;padding:0;border-radius:50%;background-color:var(--marker);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 17.5V7M7.5 11.5 12 7l4.5 4.5' fill='none' stroke='white' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:16px}.log-timeline.time-down .log-direction{transform:rotate(180deg)}.log-entries{display:flex;flex-direction:column;gap:18px;list-style:none;margin:0;padding:0}.log-entry:not(:last-child):before,.log-entry:first-child:before{content:"";position:absolute;top:13px;bottom:-31px;left:6px;width:2px;border-radius:1px;background:var(--timeline);pointer-events:none}.log-entry:first-child:before{top:-4px}.log-entry:first-child:last-child:before{bottom:auto;height:17px}.log-entry{position:relative;display:grid;gap:6px;padding-left:22px}.log-entry-head:before{content:"";position:absolute;top:7px;left:1px;width:8px;height:8px;border:2px solid var(--teal);border-radius:50%;background:var(--bg)}.log-entry-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 16px}.log-entry-actions{display:flex;align-items:center;gap:8px}.log-custom{color:var(--muted);font-size:.72rem;font-weight:600}.log-card{display:grid;gap:8px;padding:14px 16px;background:var(--log-card);border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 14px var(--shadow-faint);font-variant-numeric:tabular-nums}.log-stats{display:grid;grid-template-columns:4rem 22px minmax(0,1fr) 22px 4rem;align-items:center;gap:10px;min-width:0}.log-inputs{grid-column:3;display:flex;justify-content:center;gap:10px;min-width:0;padding:10px 8px;border-radius:16px;background:var(--log-inputs)}.log-inputs .log-stat{flex:0 1 4.5rem}.log-inputs:has(.log-inputs-empty){align-self:end;align-items:center;height:2.5em;min-height:2.5em;padding-block:0}.about-panel .log-inputs-empty{margin:0;padding:2px 6px;color:var(--muted);font-size:.62rem;font-weight:500;line-height:1.25;text-align:center}.log-arrow.is-in{grid-column:2}.log-arrow.is-out{grid-column:4}.log-arrow{align-self:end;width:22px;height:22px;margin-bottom:17px;fill:none;stroke:var(--teal);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.6}.log-stat{display:grid;gap:6px;align-content:start;min-width:0;margin:0;text-align:center}.log-stat.is-glucose{grid-column:1}.log-stat.is-target{grid-column:5}.log-stats:has(.is-continued) .log-arrow.is-out{stroke-dasharray:3 3}.log-stat.is-continued .log-value{background:transparent;border:1.5px dashed currentColor}.log-stat.is-continued dt span{white-space:normal}.log-stat dt{display:grid;color:var(--ink);font-size:.8rem;font-weight:650;line-height:1.2;white-space:nowrap}.log-stat dt span{color:var(--muted);font-size:.72rem;font-weight:500}.log-stat dd{display:flex;align-items:center;justify-content:center;min-height:2.5em;margin:0;font-size:.92rem}.log-value{display:inline-flex;align-items:center;justify-content:center;min-width:2.5em;height:2.5em;padding:0 .45em;border-radius:999px;background:var(--teal-soft);color:var(--teal);font-weight:650;vertical-align:middle}.log-value.is-neutral{background:var(--neutral);color:var(--ink)}.log-value.is-in-range{background:var(--in-range-soft);color:var(--good)}.log-value.is-out-of-range{background:var(--out-of-range-soft);color:var(--out-of-range)}.log-remove{position:relative;width:26px;height:26px;min-height:26px;padding:0;border-radius:50%;background:var(--warn-soft);color:var(--warn);font-size:1.05rem;line-height:1}.log-remove:after{content:"";position:absolute;inset:-9px}.log-entry time{color:var(--muted);font-size:.82rem;font-weight:650;white-space:nowrap}.about-panel .log-continued-note,.about-panel .log-entry-note{margin:0;padding:0 16px;color:var(--muted);font-size:.78rem;font-weight:500;line-height:1.35;white-space:pre-wrap}.log-entry-note:before{content:"Note: "}.log-add-date{margin:4px 0 0;color:var(--muted);font-weight:650}.log-add-body{overscroll-behavior:none}.status-cards{display:grid;gap:12px;margin-top:16px}.status-cards>.card{margin-top:0}.card:has(>.add-note){scroll-margin-bottom:calc(max(16px,env(safe-area-inset-bottom)) + 220px)}.time-field{gap:2px;padding-right:6px}.time-field input[type=text]{flex:none;width:2.4ch}#add-hour{text-align:right}.time-colon{font-size:1.35rem;font-weight:650}.meridiem{display:flex;margin-left:auto;border-radius:999px;background:var(--pill);overflow:hidden}.meridiem button{min-height:36px;padding:0 14px;border-radius:0;background:transparent;color:var(--muted);font-size:.95rem;font-weight:700}.meridiem button[aria-pressed=true]{background:var(--teal-fill);color:var(--on-teal)}#log-add-button{width:100%;box-shadow:0 12px 30px var(--shadow-strong)}#log-add .save-note:not(:empty){margin:0 0 8px}#log-add-close{flex:none;width:40px;height:40px;padding:0;border-radius:50%;background:var(--teal-soft);color:var(--teal);font-size:1.6rem;line-height:1}.save-note.is-error{color:var(--warn)}.toast{position:absolute;inset:auto auto auto 50%;top:max(16px,env(safe-area-inset-top));width:min(36rem,calc(100% - 32px));margin:0;border:0;overflow:visible;text-align:center;padding:26px 22px;border-radius:20px;background:var(--success);color:var(--on-success);font-size:1.2rem;font-weight:650;box-shadow:0 16px 40px var(--success-shadow);opacity:0;pointer-events:none;transform:translate(-50%,calc(-100% - 24px));transition:opacity .3s ease,transform .35s cubic-bezier(.2,.8,.2,1)}.toast.is-visible{opacity:1;transform:translate(-50%)}.toast.has-action{display:flex;align-items:center;gap:14px;padding:14px 14px 14px 22px;font-size:1.05rem;text-align:left}.toast.has-action.is-visible{pointer-events:auto}.toast-text{flex:1;min-width:0}.toast-action{flex:none;min-height:44px;padding:10px 18px;background:var(--on-success);color:var(--success);font-size:1rem}.timezone-field select{font-size:1rem;font-variant-numeric:normal}.expiry-hours[hidden],.reminder-options[hidden],.reminder-rules[hidden]{display:none}.reminder-server{display:grid;gap:12px;padding:12px;border:1.5px solid var(--line);border-radius:16px;background:var(--field-sunk)}.reminder-server.is-invalid{border-color:var(--warn)}.reminder-origin{margin:0;-webkit-user-select:text;user-select:text}.reminder-origin strong{font-weight:700;overflow-wrap:anywhere}.reminder-server .reminder-error{margin:0;color:var(--warn);font-weight:650}.reminder-server label{margin:0;color:var(--muted);font-size:.8rem}.reminder-server .field{margin-top:4px;padding:1px 12px;background:var(--field)}.reminder-server input{padding:7px 0;font-size:.95rem}.expiry-hours{margin-top:14px}.reminder-options,.reminder-rules{display:grid;gap:10px}.reminder-options{margin-top:14px}.reminder-rules .control-label{margin:6px 0 0}.reminder-rules .reminder-next{margin:0;padding:10px 12px;border-radius:12px;background:var(--teal-soft);color:var(--teal);font-weight:650}.reminder-times{display:grid;gap:8px;margin:0;padding:0;list-style:none}.reminder-times:empty{display:none}.reminder-time{display:flex;align-items:center;gap:14px}.reminder-time .field{flex:1;margin-top:0}.reminder-time input[type=time]{padding:8px 0;font-size:1.15rem}.reminder-add{justify-self:start;background:var(--teal-soft);color:var(--teal)}.settings-grid{display:grid;gap:14px;margin-top:16px}.settings-group{margin-top:0}.settings-group>div+div{margin-top:14px}@media(prefers-reduced-motion:reduce){#home,.app-view.is-open,.toast,.glucose-source[hidden],.net-carbs,.net-carbs[hidden]{transition:none}}.settings-grid .hint,.dishes-hint,.dish-form .hint{margin:6px 2px 0;color:var(--muted);font-size:.85rem;line-height:1.4}.row{display:flex;justify-content:space-between;gap:12px;align-items:center}.settings-actions{flex-wrap:wrap}.backup-actions{margin-top:12px}.file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button.danger{background:var(--warn-soft);color:var(--warn)}.confirm-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px 16px;margin-top:18px}button{font:inherit;border:0;border-radius:999px;padding:12px 16px;background:var(--button);color:var(--on-button);font-weight:700;cursor:pointer}button.secondary{background:transparent;color:var(--teal);padding-inline:0}.install{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:16px;padding:12px 14px;border-radius:16px;background:var(--field);border:1px solid var(--line)}.install p{margin:0;font-size:.92rem}.install[hidden]{display:none}#home>*{width:min(100%,40rem);max-width:100%;min-width:0;margin-left:auto;margin-right:auto}.install-actions{display:flex;align-items:center;gap:4px;flex:none}#install-dismiss{width:36px;height:36px;padding:0;background:transparent;color:var(--muted);font-size:1.35rem;line-height:1}@media(max-width:520px){body{display:flex;flex-direction:column;padding-bottom:0}.app{display:flex;flex-direction:column;flex:1 1 auto}#home{display:flex;flex-direction:column;padding-bottom:0}.app:has(#home>.log-save>.card:not([hidden])) #home>main{padding-bottom:36px}.card{padding:14px}.split button{width:36px;height:36px;min-height:36px;font-size:1.2rem}.suffix{padding:8px}.log-stats{grid-template-columns:3rem 16px minmax(0,1fr) 16px 2.6rem;column-gap:4px}.log-inputs{gap:2px;padding:8px 2px;border-radius:14px}.log-inputs:has(.log-inputs-empty){padding-block:0}.log-inputs .log-stat{flex-basis:3.2rem}.log-arrow{width:16px;height:16px;margin-bottom:18px}.log-stat dt{font-size:.74rem}.log-stat dt span{font-size:.66rem}.log-save:has(>.card:not([hidden])){bottom:0;border-radius:22px 22px 0 0;border-bottom:0;padding-bottom:max(14px,env(safe-area-inset-bottom))}#home>.log-save:has(>.card:not([hidden])){width:auto;max-width:none;align-self:stretch;margin-top:auto;margin-bottom:0;margin-left:calc(-1*max(18px,env(safe-area-inset-left)));margin-right:calc(-1*max(18px,env(safe-area-inset-right)))}#log-add-dialog{overflow:hidden}#log-add{height:100%;max-height:100%;min-height:0;overflow:hidden;padding:0}#log-add>.log-add-body{flex:1 1 auto;min-height:0;overflow:auto;padding:0 max(18px,env(safe-area-inset-right)) 22px max(18px,env(safe-area-inset-left))}#log-add .about-head{margin-top:max(18px,env(safe-area-inset-top))}#log-add>.log-save{position:relative;bottom:auto;margin-top:0}}.rotate-notice{display:none}@media(orientation:landscape)and (min-aspect-ratio:3/2)and (max-height:500px)and (pointer:coarse){body>:not(.rotate-notice){visibility:hidden}dialog::backdrop{display:none}.rotate-notice{position:fixed;inset:0;z-index:100;display:grid;place-content:center;gap:6px;padding:24px;text-align:center;color:var(--muted);background:var(--bg)}.rotate-notice p{margin:0}.rotate-notice-title{font-size:1.25rem;font-weight:700;color:var(--ink)}}html.ios-app{overflow:hidden}html.ios-app body{min-height:100lvh}html.ios-app #home,html.ios-app .app-view.is-open,html.ios-app dialog::backdrop{bottom:calc(100dvh - 100lvh)}html.ios-app dialog:modal{bottom:calc(100dvh - 100lvh);max-height:calc(100lvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px)}
