:root{color-scheme:light;--bg: #f6f5f2;--surface: #ffffff;--text: #1f2328;--muted: #5f6670;--border: #d9d7d2;--accent: #2a64c8;--danger: #c62828;--status-today: #2563eb;--status-ok: #2e9d57;--status-over: #e08a00;--status-under: #8a4fd8;--status-gold: #a88418;--status-empty: #e4e2dd;--status-future: #c3c1bc;--abe-body: #5b2a86;--abe-highlight: #8e5cc2;--abe-outline: #241031;--abe-calyx: #4f9a3c;--abe-glasses: #17191f;--abe-glint: #ffffff;--abe-moustache: #7a4a24;--abe-mouth: #3b0d22;--abe-tongue: #e2627d;--abe-teeth: #fffdf4;--abe-glove: #ffffff;--abe-glove-outline: #241031;--abe-shoe: #c8432f;--abe-snack: #d9a35b;--abe-snack-chip: #4e2a12;--logo-frame-edge: #3f5e4c;--logo-frame: #7fa58f;--logo-frame-shine: #b9d6c2;--logo-window: #f3ead2;--logo-hair: #5a3520;--logo-skin: #f6d2b8;--logo-eye: #2a1a12;--logo-cheek: #ec8f98;--logo-mouth: #c44f62;--logo-shirt: #1f1d24;--logo-shirt-edge: #4f4a58;--logo-olive-tabby: #9a9a5c;--logo-olive-tabby-stripe: #4a4a26;--logo-dark-tabby: #86603d;--logo-dark-tabby-stripe: #34221a;--logo-black-cat: #26222a;--logo-cat-eye: #9ccc5a;--logo-crow: #1d1c24;--logo-crow-edge: #1d1c24;--logo-crow-sheen: #454a86;--logo-crow-beak: #56535e;--logo-crow-eye: #dfe3ea;--logo-title: #1f2f5c;--logo-title-shadow: #c6d1ec}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #121418;--surface: #1c1f25;--text: #e8e9eb;--muted: #9aa1ab;--border: #343941;--accent: #6ea2f5;--danger: #ef6b6b;--status-today: #5b9cf8;--status-ok: #43b871;--status-over: #f2a33a;--status-under: #a97cf0;--status-gold: #e2bd45;--status-empty: #2b2f36;--status-future: #3d424a;--abe-body: #9a64d4;--abe-highlight: #bf9bea;--abe-outline: #dcc8f5;--abe-calyx: #62b84d;--abe-glasses: #17191f;--abe-glint: #ffffff;--abe-moustache: #6b3f1d;--abe-mouth: #3b0d22;--abe-tongue: #e2627d;--abe-teeth: #fffdf4;--abe-glove: #f3eff8;--abe-glove-outline: #7a48b3;--abe-shoe: #df5a44;--abe-snack: #e0ae68;--abe-snack-chip: #4e2a12;--logo-frame-edge: #9cc2a8;--logo-frame: #6f957f;--logo-frame-shine: #a8c9b2;--logo-window: #e9dfc4;--logo-hair: #5a3520;--logo-skin: #f6d2b8;--logo-eye: #2a1a12;--logo-cheek: #ec8f98;--logo-mouth: #c44f62;--logo-shirt: #1f1d24;--logo-shirt-edge: #4f4a58;--logo-olive-tabby: #9a9a5c;--logo-olive-tabby-stripe: #4a4a26;--logo-dark-tabby: #86603d;--logo-dark-tabby-stripe: #34221a;--logo-black-cat: #26222a;--logo-cat-eye: #9ccc5a;--logo-crow: #1d1c24;--logo-crow-edge: #5f6584;--logo-crow-sheen: #7e85d2;--logo-crow-beak: #8d8a97;--logo-crow-eye: #dfe3ea;--logo-title: #627ecb;--logo-title-shadow: #24346a}}:root[data-theme=dark]{color-scheme:dark;--bg: #121418;--surface: #1c1f25;--text: #e8e9eb;--muted: #9aa1ab;--border: #343941;--accent: #6ea2f5;--danger: #ef6b6b;--status-today: #5b9cf8;--status-ok: #43b871;--status-over: #f2a33a;--status-under: #a97cf0;--status-gold: #e2bd45;--status-empty: #2b2f36;--status-future: #3d424a;--abe-body: #9a64d4;--abe-highlight: #bf9bea;--abe-outline: #dcc8f5;--abe-calyx: #62b84d;--abe-glasses: #17191f;--abe-glint: #ffffff;--abe-moustache: #6b3f1d;--abe-mouth: #3b0d22;--abe-tongue: #e2627d;--abe-teeth: #fffdf4;--abe-glove: #f3eff8;--abe-glove-outline: #7a48b3;--abe-shoe: #df5a44;--abe-snack: #e0ae68;--abe-snack-chip: #4e2a12;--logo-frame-edge: #9cc2a8;--logo-frame: #6f957f;--logo-frame-shine: #a8c9b2;--logo-window: #e9dfc4;--logo-hair: #5a3520;--logo-skin: #f6d2b8;--logo-eye: #2a1a12;--logo-cheek: #ec8f98;--logo-mouth: #c44f62;--logo-shirt: #1f1d24;--logo-shirt-edge: #4f4a58;--logo-olive-tabby: #9a9a5c;--logo-olive-tabby-stripe: #4a4a26;--logo-dark-tabby: #86603d;--logo-dark-tabby-stripe: #34221a;--logo-black-cat: #26222a;--logo-cat-eye: #9ccc5a;--logo-crow: #1d1c24;--logo-crow-edge: #5f6584;--logo-crow-sheen: #7e85d2;--logo-crow-beak: #8d8a97;--logo-crow-eye: #dfe3ea;--logo-title: #627ecb;--logo-title-shadow: #24346a}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4;-webkit-text-size-adjust:100%}a{color:var(--accent)}h1{margin:0 0 16px;font-size:1.4rem}.section-rule{width:75%;margin:var(--space-5) auto;border:0;border-top:1px solid var(--border)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app{min-height:100vh;min-height:100dvh}.screen{max-width:640px;margin:0 auto;padding:16px 16px calc(80px + env(safe-area-inset-bottom))}.screen h1:focus{outline:none}.nav{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.nav-link{position:relative;flex:1;min-width:44px;min-height:56px;display:flex;align-items:center;justify-content:center;color:var(--muted);text-decoration:none;-webkit-tap-highlight-color:transparent}.nav-icon{display:flex;align-items:center;justify-content:center;width:44px;height:36px;border-radius:10px}.nav-icon .abe{overflow:hidden;pointer-events:none}.nav-link[aria-current=page]{color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}.nav-link[aria-current=page] .nav-icon{background:color-mix(in srgb,var(--accent) 14%,transparent)}.nav-link:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}.nav-tip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:4px 8px;border-radius:6px;background:var(--text);color:var(--bg);font-size:.8rem;font-weight:600;line-height:1.2;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease-out,visibility .12s}.nav-link--calendar .nav-tip{left:4px;transform:none}.nav-link--settings .nav-tip{left:auto;right:4px;transform:none}@media(hover:hover){.nav-link:hover .nav-tip{opacity:1;visibility:visible}}.nav-link:focus-visible .nav-tip{opacity:1;visibility:visible}@media(prefers-reduced-motion:reduce){.nav-tip{transition:none}}.outline-icon,.pixel-art{display:inline-block;flex:none;vertical-align:middle}:root{--badge-ink: #2b2420;--badge-dark: #2b2420;--badge-glint: #ffffff;--badge-water: #3b95dd;--badge-water-top: #a9dbfa;--badge-crust: #c47a32;--badge-crust-dark: #8c4f1d;--badge-crumb: #f6d79a;--badge-shoe: #2f6fdb;--badge-sole: #f4f1ea;--badge-warn: #f2b705;--badge-wood: #9a6232;--badge-sand: #e2a93b;--badge-cross: #d33a3a}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--badge-ink: #ece6dc;--badge-dark: #231d1a;--badge-glint: #ffffff;--badge-water: #4fa8ee;--badge-water-top: #b7e2fc;--badge-crust: #d48a42;--badge-crust-dark: #9e5c26;--badge-crumb: #f8dfaa;--badge-shoe: #5b93ef;--badge-sole: #f4f1ea;--badge-warn: #f5c53a;--badge-wood: #b77a45;--badge-sand: #f0bd55;--badge-cross: #f06464}}:root[data-theme=dark]{--badge-ink: #ece6dc;--badge-dark: #231d1a;--badge-glint: #ffffff;--badge-water: #4fa8ee;--badge-water-top: #b7e2fc;--badge-crust: #d48a42;--badge-crust-dark: #9e5c26;--badge-crumb: #f8dfaa;--badge-shoe: #5b93ef;--badge-sole: #f4f1ea;--badge-warn: #f5c53a;--badge-wood: #b77a45;--badge-sand: #f0bd55;--badge-cross: #f06464}.px-ink{fill:var(--badge-ink)}.px-dark{fill:var(--badge-dark)}.px-glint{fill:var(--badge-glint)}.px-water{fill:var(--badge-water)}.px-water-top{fill:var(--badge-water-top)}.px-crust{fill:var(--badge-crust)}.px-crust-dark{fill:var(--badge-crust-dark)}.px-crumb{fill:var(--badge-crumb)}.px-shoe{fill:var(--badge-shoe)}.px-sole{fill:var(--badge-sole)}.px-warn{fill:var(--badge-warn)}.px-wood{fill:var(--badge-wood)}.px-sand{fill:var(--badge-sand)}.px-tick{fill:var(--status-ok)}.px-cross{fill:var(--badge-cross)}.px-up{fill:var(--status-over)}.px-down{fill:var(--status-under)}.signin{max-width:420px;margin:0 auto;padding:calc(32px + env(safe-area-inset-top)) 16px calc(32px + env(safe-area-inset-bottom))}.signin h1:focus{outline:none}.signin-app{margin:0 0 4px;color:var(--muted);font-weight:600}.signin-intro{margin:0 0 16px}.signin-field{margin-bottom:16px}.signin-field label{display:block;margin-bottom:4px;font-weight:600}.signin-field input{display:block;width:100%;min-height:48px;padding:8px 12px;border:1px solid var(--muted);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:16px}.signin-field input[aria-invalid=true]{border-color:var(--danger);border-width:2px}.signin-field input:focus-visible,.signin-submit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.signin-hint{margin:4px 0 0;color:var(--muted);font-size:.875rem}.signin-problem{margin:0 0 16px;padding:8px 12px;border-left:4px solid var(--danger);background:var(--surface);color:var(--danger);font-weight:600}.signin-problem:empty{margin:0;padding:0;border:0}.signin-problem-mark{display:inline-block;width:1.4em;height:1.4em;margin-right:8px;border:2px solid currentColor;border-radius:50%;line-height:calc(1.4em - 4px);text-align:center}.signin-submit{display:block;width:100%;min-height:48px;padding:8px 16px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--surface);font:inherit;font-weight:600;cursor:pointer}.signin-submit:disabled{opacity:.6;cursor:default}.signin-waiting{color:var(--muted);animation:signin-appear .2s .5s both}@keyframes signin-appear{0%{opacity:0}}.notice{max-width:608px;margin:16px auto 0;padding:12px 16px;background:var(--surface);border:1px solid var(--danger);border-left-width:4px;border-radius:8px}@media(max-width:640px){.notice{margin-left:16px;margin-right:16px}}.notice p,.notice ul{margin:0 0 8px}.notice-title{font-weight:600}.notice-messages{padding-left:20px;color:var(--muted)}.notice-dismiss{min-height:44px;padding:0 16px;font:inherit;color:var(--text);background:transparent;border:1px solid var(--border);border-radius:8px}.notice-dismiss:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.banner{box-sizing:content-box;height:60px;margin:0;padding-bottom:var(--space-1);display:flex;align-items:center}.banner-art{display:block;max-width:100%;height:auto;max-height:56px}.logo-px-frame-edge{fill:var(--logo-frame-edge)}.logo-px-frame{fill:var(--logo-frame)}.logo-px-frame-shine{fill:var(--logo-frame-shine)}.logo-px-window{fill:var(--logo-window)}.logo-px-hair{fill:var(--logo-hair)}.logo-px-skin{fill:var(--logo-skin)}.logo-px-eye{fill:var(--logo-eye)}.logo-px-cheek{fill:var(--logo-cheek)}.logo-px-mouth{fill:var(--logo-mouth)}.logo-px-shirt{fill:var(--logo-shirt)}.logo-px-shirt-edge{fill:var(--logo-shirt-edge)}.logo-px-olive-tabby{fill:var(--logo-olive-tabby)}.logo-px-olive-tabby-stripe{fill:var(--logo-olive-tabby-stripe)}.logo-px-dark-tabby{fill:var(--logo-dark-tabby)}.logo-px-dark-tabby-stripe{fill:var(--logo-dark-tabby-stripe)}.logo-px-black-cat{fill:var(--logo-black-cat)}.logo-px-cat-eye{fill:var(--logo-cat-eye)}.logo-px-crow{fill:var(--logo-crow)}.logo-px-crow-edge{fill:var(--logo-crow-edge)}.logo-px-crow-sheen{fill:var(--logo-crow-sheen)}.logo-px-crow-beak{fill:var(--logo-crow-beak)}.logo-px-crow-eye{fill:var(--logo-crow-eye)}.logo-px-title{fill:var(--logo-title)}.logo-px-title-shadow{fill:var(--logo-title-shadow)}.today-section{margin:0}.today-head{margin:0 0 var(--space-3);border-bottom:2px solid var(--border)}.today-head.today-gold{border-bottom:3px solid var(--status-gold)}.today-title{margin:0 0 var(--space-2);font-size:1.1rem}.today-date{margin-left:6px;color:var(--muted);font-size:.875rem;font-weight:400}.today-link{box-sizing:border-box;min-height:72px;display:flex;align-items:center;gap:4px;padding:var(--space-2) 0;color:var(--text);text-decoration:none}.today-link:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.today-indicators{flex:1;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:4px}.today-indicator{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.today-badge{position:relative;display:inline-flex;align-items:center;gap:2px;min-height:26px;line-height:0}.today-badge.day-badge-off:after{content:"";position:absolute;top:calc(50% - 10px);left:-2px;width:32px;height:20px;border:2px dotted currentColor}.today-figure{max-width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.today-unit,.today-none{color:var(--muted)}.today-unit{font-size:.8rem}.today-go{color:var(--muted);font-size:1.25rem;line-height:1}.today-week{min-height:76px;margin-top:var(--space-4)}.today-week-title{margin:0 0 var(--space-2);color:var(--muted);font-size:.875rem;font-weight:600}.today-week-figures{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;margin:0;font-variant-numeric:tabular-nums}.today-chip{padding:1px 8px;border:1px solid var(--status-ok);border-radius:999px;background:color-mix(in srgb,var(--status-ok) 18%,var(--bg));color:var(--text);font-weight:700}.today-chip.today-chip-over{border-color:var(--status-over);background:color-mix(in srgb,var(--status-over) 18%,var(--bg))}.today-week-total,.today-week-note{color:var(--muted);font-size:.875rem}.today-week-note{margin:0}.today-week .calories-bar{margin:var(--space-2) 0 0}.today-week .calories-bar-svg{height:16px}.today-week .calories-bar-scale{display:none}.calendar-title{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:var(--space-4)}.calendar-month{margin:0;font-size:1.25rem;text-align:center}.calendar-page{min-width:44px;min-height:44px;display:inline-flex;align-items:center;gap:4px;padding:0 8px;border-radius:8px;font-weight:600;text-decoration:none;white-space:nowrap}.calendar-page:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.calendar-note{margin:0 0 12px;color:var(--muted)}.calendar-grid{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}.calendar-grid th{padding:0 0 6px;color:var(--muted);font-size:.8rem;font-weight:600}.calendar-grid abbr{text-decoration:none}.calendar-grid td{height:1px;padding:2px}.day{box-sizing:border-box;height:100%;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:2px 0;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:1rem;font-variant-numeric:tabular-nums;text-decoration:none}.calendar-key-swatch{flex:none;width:24px;height:18px;border:2px solid var(--border);border-radius:4px;background:var(--surface)}a.day[href]:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.day-with-badges{--number-column: 13px;--badge-slot: 17px;display:grid;grid-template-columns:var(--number-column) var(--badge-slot);grid-template-rows:1fr auto 1fr;grid-template-areas:". badges" "number badges" "warning badges";align-content:center;justify-content:center;column-gap:1px}.day-with-badges .day-number{grid-area:number;justify-self:center;font-size:.75rem;line-height:1}.day-with-badges .day-badges{align-self:center}.day-warning{grid-area:warning;align-self:end;justify-self:center;line-height:0}.day-badges{grid-area:badges;display:grid;grid-template-rows:13px 10px 13px;grid-template-columns:var(--badge-slot, 17px);row-gap:1px;line-height:0}.day-badges .day-badge{position:relative;display:block}.day-badges .day-badge-water{grid-row:1}.day-badges .day-badge-kcal{grid-row:2}.day-badges .day-badge-steps{grid-row:3}.day-badges .day-badge>.pixel-badge{position:absolute;top:0;left:0}.day-badges .day-badge>.pixel-badge+.pixel-badge{inset:auto 0 0 auto}@media(min-width:440px){.day-with-badges{--number-column: 20px;--badge-slot: 26px;column-gap:2px}.day-with-badges .day-number{font-size:1rem}}.day-badge{display:inline-flex;align-items:center;gap:1px}.day-badge-off{position:relative}.day-badge-off>.pixel-badge{filter:grayscale(1);opacity:.5}.day-badge-off:after{content:"";position:absolute;top:-1px;left:-1px;width:16px;height:10px;border:1px dotted currentColor}.status-empty{border-color:var(--status-empty);background:var(--surface)}.status-ok,.status-in_range{border-color:var(--status-ok);background:color-mix(in srgb,var(--status-ok) 30%,var(--surface))}.status-under{border-style:dashed;border-color:var(--status-under);background:color-mix(in srgb,var(--status-under) 30%,var(--surface))}.status-over{border-color:var(--status-over);background:color-mix(in srgb,var(--status-over) 30%,var(--surface));box-shadow:inset 0 -6px 0 var(--status-over)}.status-today,.status-today_in_range,.status-today_over{border-color:var(--status-today);background:var(--status-today);color:var(--surface);font-size:1.2rem;font-weight:700}.status-today_over{border-color:var(--status-over);box-shadow:inset 0 -6px 0 var(--status-over)}.status-future{border-color:transparent;background:color-mix(in srgb,var(--status-future) 40%,var(--surface));color:var(--muted);cursor:default}.day-gold{border:3px solid var(--status-gold)}.calendar-legend{margin-top:16px}.calendar-key-title{margin:0 0 8px;font-size:1rem}.calendar-key{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:6px 16px;margin:0;padding:0;list-style:none}.calendar-key-item{display:flex;align-items:center;gap:8px;font-size:.9rem}.calendar-key-item .day-badge{min-width:24px}.library-duplicate{padding:var(--space-3);border:1px solid var(--muted);border-radius:12px;background:var(--surface);color:var(--text)}.library-duplicate p{margin:0 0 var(--space-3);overflow-wrap:anywhere}.library-duplicate .library-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.library-duplicate .library-actions button{flex:1 1 8rem;min-height:44px}.measure-field{margin:0 0 12px}.measure-field>label{display:block;margin:0 0 4px;font-weight:600}.measure-select,.measure-portion{display:block;width:100%;min-height:44px;padding:8px 12px;font:inherit;font-size:16px;color:var(--text);background:var(--bg);border:1px solid var(--muted);border-radius:8px}.measure-portion[aria-invalid=true]{border:2px solid var(--danger)}.measure-select:focus-visible,.measure-portion:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.measure-hint{margin:4px 0 0;color:var(--muted)}.measure-error{margin:4px 0 0;color:var(--danger)}.entry-save{min-height:44px;margin-top:6px;padding:0 14px;font:inherit;font-weight:600;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer}.ask-ai-answer .save-library-toggle{margin-left:8px}.save-library{margin:8px 0 0;padding:12px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px}.save-library-title{margin:0 0 8px;font-size:1rem}.save-library-field{margin:0 0 12px}.save-library-field>label,.save-library-label{display:block;margin:0 0 4px;padding:0;font-weight:600}.save-library .measure-select,.save-library .measure-portion{background:var(--surface)}.save-library-input{display:block;width:100%;min-height:44px;padding:8px 10px;font:inherit;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--muted);border-radius:8px}.save-library-input[aria-invalid=true]{border:2px solid var(--danger)}.save-library-lines{margin:0;padding:0;list-style:none}.save-library-line{display:flex;flex-wrap:wrap;gap:4px 8px;padding:2px 0}.save-library-line-name{flex:1;min-width:0;overflow-wrap:anywhere}.save-library-line-amount{color:var(--muted)}.save-library-line-kcal,.save-library-total-kcal{font-variant-numeric:tabular-nums;white-space:nowrap}.save-library-total{margin:6px 0 0;font-weight:600}.save-library-error{margin:6px 0;color:var(--danger);font-weight:600}.save-library-done{margin:0;font-weight:600}.save-library-button{min-height:44px;padding:0 16px;font:inherit;font-weight:600;color:var(--surface);background:var(--accent);border:1px solid var(--accent);border-radius:8px;cursor:pointer}.save-library-button:disabled{opacity:.6;cursor:default}.save-library .library-duplicate{margin:6px 0 0}.save-library .library-actions button{min-height:44px;padding:0 var(--space-4);font:inherit;font-weight:600;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer}.save-library .library-actions .library-primary{color:var(--surface);background:var(--accent);border-color:var(--accent)}.save-library .library-actions button:disabled{opacity:.6;cursor:default}.save-library .library-actions button:focus-visible,.entry-save:focus-visible,.save-library-input:focus-visible,.save-library-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ask-ai{--ai-accent: var(--status-under);margin:0 0 12px}.ask-ai-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:0 16px;font:inherit;font-weight:700;color:var(--surface);background:linear-gradient(120deg,var(--accent),var(--ai-accent));border:0;border-radius:999px;cursor:pointer}.ask-ai-button:before{content:"✦";content:"✦" / "";font-size:1.1em}.ask-ai-button:disabled,.ask-ai-button[aria-disabled=true]{opacity:.75;cursor:default}.ask-ai-button.ask-ai-blocked{color:var(--muted);background:var(--surface);border:1px dashed var(--border);opacity:1}.ask-ai-hint{margin:6px 0 0;color:var(--muted)}.ask-ai-note,.ask-ai-assumptions{margin:6px 0 12px;color:var(--muted)}.ask-ai-note:empty{margin:0}.ask-ai-message{margin:6px 0 0;color:var(--danger);font-weight:600}.ask-ai-answer{margin:12px 0 0}.ask-ai-retry>label{display:block;margin-bottom:4px;font-weight:600}.ask-ai-retry-input{display:block;width:100%;min-height:44px;padding:8px 10px;font:inherit;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--muted);border-radius:8px;resize:vertical}.ask-ai-retry-actions{display:flex;gap:8px;margin-top:8px}.ask-ai-small{min-height:44px;padding:0 16px;font:inherit;font-weight:600;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer}.ask-ai-send{color:var(--surface);background:var(--accent);border-color:var(--accent)}.ask-ai-small:disabled,.ask-ai-small[aria-disabled=true]{opacity:.6;cursor:default}.ask-ai-button:focus-visible,.ask-ai-small:focus-visible,.ask-ai-retry-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ingredient-picker>label{display:block;margin-bottom:4px;color:var(--muted);font-size:.9rem}.ingredient-picker input{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--muted);border-radius:8px;background:var(--bg);color:var(--text);font:inherit}.ingredient-picker input[aria-invalid=true]{border-color:var(--danger)}.ingredient-picker-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.ingredient-picker-note{margin:8px 0 0;color:var(--muted)}.ingredient-picker-group{margin-top:8px}.ingredient-picker-group-name{margin:0 0 4px;color:var(--muted);font-size:.9rem;font-weight:600}.ingredient-picker-items{margin:0;padding:0;list-style:none}.ingredient-picker-items li+li{margin-top:4px}.ingredient-picker .ingredient-picker-item{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-weight:400;text-align:left;cursor:pointer}.ingredient-picker .ingredient-picker-item:disabled{color:var(--muted);cursor:not-allowed}.ingredient-picker input:focus-visible,.ingredient-picker .ingredient-picker-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ingredient-picker-item-name{min-width:0;overflow-wrap:anywhere}.ingredient-picker-item-kcal{flex:none;color:var(--muted)}.lines-control{margin:0 0 12px}.lines-control-group{margin:0 0 12px;padding:0;border:0}.lines-control-group legend{margin-bottom:4px;padding:0;font-weight:600}.lines-control-list{margin:0 0 8px;padding:0;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:8px}.lines-control-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name kcal remove" "amount kcal remove";column-gap:10px;align-items:center;min-height:44px;padding:6px 8px 6px 12px}.lines-control-line+.lines-control-line{border-top:1px solid var(--border)}.lines-control-name{grid-area:name;overflow-wrap:anywhere}.lines-control-amount{grid-area:amount;color:var(--muted);font-size:.9rem;overflow-wrap:anywhere}.lines-control-kcal{grid-area:kcal;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted)}.lines-control-remove{grid-area:remove}.lines-control-off .lines-control-name,.lines-control-off .lines-control-kcal{color:var(--muted);text-decoration:line-through}.lines-control-small{min-height:44px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--accent);font:inherit;font-weight:600;cursor:pointer}.lines-control-small:disabled{color:var(--muted);cursor:default}.lines-control-add{margin:0 0 8px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.lines-control-add-heading{margin:0 0 8px;font-weight:600}.lines-control-add-field{margin:0 0 10px}.lines-control-add-field>label,.lines-control-add-label{display:block;margin-bottom:4px;color:var(--muted);font-size:.9rem}.lines-control-add-field>input{box-sizing:border-box;width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--muted);border-radius:8px;background:var(--bg);color:var(--text);font:inherit}.lines-control-add-field>input[aria-invalid=true]{border-color:var(--danger)}.lines-control-add-picked{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.lines-control-add-picked .lines-control-add-label{width:100%;margin-bottom:0}.lines-control-add-picked-name{flex:1;overflow-wrap:anywhere}.lines-control-add-kcal{font-variant-numeric:tabular-nums}.lines-control-approx{color:var(--muted)}.lines-control-error,.lines-control-add .library-field-error{margin:6px 0 0;color:var(--danger);font-weight:600}.lines-control-add-actions{display:flex;flex-wrap:wrap;gap:8px}.lines-control-option{display:flex;align-items:center;gap:10px;min-height:44px;margin:0 0 12px;cursor:pointer}.lines-control-option input{width:22px;height:22px;margin:0;accent-color:var(--accent)}.lines-control-portions{display:flex;flex-wrap:wrap;gap:8px}.lines-control-portions legend{width:100%}.lines-control-portion{position:relative;flex:1;min-width:56px}.lines-control-portion input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.lines-control-portion span{display:flex;align-items:center;justify-content:center;min-height:44px;font-weight:600;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:8px}.lines-control-portion input:checked+span{color:var(--surface);background:var(--accent);border-color:var(--accent)}.lines-control-portion input:focus-visible+span,.lines-control-small:focus-visible,.lines-control-add-field>input:focus-visible,.lines-control-option input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lines-control-total{margin:0}.lines-control-total-kcal{font-weight:700;font-variant-numeric:tabular-nums}.add-food-open{width:100%;min-height:48px;margin-bottom:16px;padding:0 16px;font:inherit;font-weight:700;color:var(--surface);background:var(--accent);border:1px solid var(--accent);border-radius:12px;cursor:pointer}.add-food-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:#00000073}.add-food{width:100%;max-width:640px;max-height:100%;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;scroll-padding-bottom:76px;background:var(--bg);color:var(--text);border-radius:16px 16px 0 0}.add-food:focus{outline:none}.add-food-form{padding:16px 16px 0}.add-food-title{margin:0 0 12px;font-size:1.2rem}.add-food-field{margin:0 0 12px}.add-food-field>label{display:block;margin-bottom:4px;font-weight:600}.add-food-input{box-sizing:border-box;width:100%;min-height:44px;padding:8px 10px;font:inherit;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--muted);border-radius:8px}.add-food-input[aria-invalid=true]{border:2px solid var(--danger)}.add-food-error{margin:6px 0 0;color:var(--danger);font-weight:600}.add-food-note{margin:6px 0 12px;color:var(--muted)}.add-food-own-kcal:empty{margin:0}.add-food-group{margin:0 0 12px}.add-food-group-name{margin:0 0 4px;font-size:.95rem;color:var(--muted)}.add-food-items{margin:0;padding:0;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:8px}.add-food-items li+li{border-top:1px solid var(--border)}.add-food-item{display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:8px 12px;font:inherit;text-align:left;color:var(--text);background:transparent;border:0;border-radius:8px;cursor:pointer}.add-food-item-name{flex:1;min-width:0;overflow-wrap:anywhere}.add-food-item-kcal{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--muted)}.add-food-approx{font-style:italic}.add-food-actions{position:sticky;bottom:0;display:flex;gap:8px;margin:0 -16px;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border)}.add-food-button{flex:1;min-height:44px;padding:0 14px;font:inherit;font-weight:600;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer}.add-food-save{color:var(--surface);background:var(--accent);border-color:var(--accent)}.add-food-button:disabled{opacity:.6;cursor:default}.add-food-open:focus-visible,.add-food-input:focus-visible,.add-food-item:focus-visible,.add-food-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.water{margin-bottom:16px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.water-heading{margin:0;font-size:1.1rem}.water-amount,.water-limit{margin:4px 0 8px;font-variant-numeric:tabular-nums}.water-limit{margin-bottom:0;font-weight:600}.water-glasses{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}.water-glass{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;color:var(--accent);background:transparent;border:0;border-radius:8px;cursor:pointer}.water-glass:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.water-icon{display:block}.water-outline,.water-plus{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.water-fill{fill:none;stroke:none}.water-empty .water-outline{stroke:var(--muted);stroke-dasharray:3 2}.water-filled .water-fill{fill:currentColor;opacity:.6}.water-add{color:var(--muted)}.water-message{margin:-8px 0 16px;color:var(--danger);font-weight:600}.abe-quip{--abe-quip-at: 37.5vw;position:absolute;left:8px;right:8px;bottom:calc(100% + 34px);display:flex;justify-content:flex-end;pointer-events:none}.abe-quip-bubble{position:relative;max-width:min(18rem,100%);margin:0 max(0px,calc(var(--abe-quip-at) - 8px - 24px - 7px)) 0 0;padding:8px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:0 4px 14px #0000002e;font-size:.9rem;line-height:1.35;overflow-wrap:anywhere;pointer-events:none;animation:abe-quip-pop .18s ease-out}.abe-quip-bubble:after{content:"";position:absolute;right:24px;bottom:-8px;width:14px;height:14px;background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:rotate(45deg)}@keyframes abe-quip-pop{0%{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.abe-quip-bubble{animation:none}}.day-title{margin-bottom:8px}.day-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.day-page{min-height:44px;display:inline-flex;align-items:center;gap:4px;padding:0 8px;border-radius:8px;font-weight:600;text-decoration:none;white-space:nowrap}.day-month{text-align:center}@media(max-width:400px){.day-page-word{display:none}}.day-page[aria-disabled=true]{color:var(--muted);cursor:default}.day-page:focus-visible,.allowance-input:focus-visible,.allowance-button:focus-visible,.calories-pencil:focus-visible,.entry-edit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.day-note{margin:0 0 12px;color:var(--muted)}.day-screen .calories-card{margin-bottom:16px;padding:16px;border:2px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font-size:1rem;font-weight:400;box-shadow:none}.calories-heading{margin:0 0 8px;font-size:1.1rem}.calories-card p{margin:4px 0}.calories-card .calories-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.calories-total{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums}.calories-bar{margin:8px 0 4px}.calories-bar-svg{display:block;width:100%}.bar-track{fill:var(--border)}.bar-band{fill:var(--status-ok);fill-opacity:.45;stroke:var(--status-ok);stroke-width:1px;vector-effect:non-scaling-stroke}.bar-under{fill:var(--status-under)}.bar-in{fill:var(--status-ok)}.bar-over{fill:var(--status-over)}.bar-allowance{fill:var(--text)}.calories-card .calories-bar-scale{text-align:right;margin:2px 0 0;color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}.calories-card .calories-range{margin:4px 0 12px;color:var(--muted);font-size:.85rem}.calories-allowance{padding-top:8px;border-top:1px solid var(--border)}.calories-allowance-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.calories-allowance-title{margin:0;font-size:1rem}.calories-pencil{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;color:var(--accent);background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer}.calories-pencil[aria-expanded=true]{background:var(--bg);border-color:var(--border)}.calories-allowance-figure{color:var(--muted)}.calories-allowance-kcal{color:var(--text);font-weight:600}.calories-card.status-empty{border-color:var(--status-empty)}.calories-card.status-ok,.calories-card.status-in_range{border-color:var(--status-ok);box-shadow:inset 0 6px 0 var(--status-ok)}.calories-card.status-under{border-style:dashed;border-color:var(--status-under);box-shadow:inset 0 6px 0 var(--status-under)}.calories-card.status-over{border-color:var(--status-over);box-shadow:inset 0 6px 0 var(--status-over)}.calories-card.status-today{border-color:var(--status-today);box-shadow:inset 0 6px 0 var(--status-today)}.calories-card.status-today_in_range{border-color:var(--status-ok);box-shadow:inset 0 6px 0 var(--status-today)}.calories-card.status-today_over{border-color:var(--status-today);box-shadow:inset 0 6px 0 var(--status-over)}.allowance-form{margin-top:12px}.allowance-label{display:block;margin-bottom:4px;font-weight:600}.allowance-row{display:flex;flex-wrap:wrap;gap:8px}.allowance-input{flex:1 1 8em;min-width:0;min-height:44px;padding:8px 10px;font:inherit;font-size:1rem;color:var(--text);background:var(--bg);border:1px solid var(--muted);border-radius:8px}.allowance-input[aria-invalid=true]{border:2px solid var(--danger)}.allowance-button{min-height:44px;min-width:44px;padding:0 14px;font:inherit;font-weight:600;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer}.allowance-button:disabled,.allowance-message{margin:6px 0 0;color:var(--danger);font-weight:600}.slot{margin-bottom:12px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.slot-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.slot-name{margin:0;font-size:1.1rem}.slot-total,.entry-kcal,.entry-line-kcal{font-variant-numeric:tabular-nums;white-space:nowrap}.slot-total{font-weight:600}.slot-entries,.entry-lines{margin:0;padding:0;list-style:none}.entry{padding:8px 0;border-top:1px solid var(--border)}.slot-entries{margin-top:8px}.entry-head{display:flex;align-items:center;gap:8px}.entry-name{flex:1;min-width:0;overflow-wrap:anywhere}.entry-edit{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:44px;min-height:44px;padding:0;color:var(--accent);background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer}.entry-portion{color:var(--muted);white-space:nowrap}.entry-lines{margin-top:4px;padding-left:12px;color:var(--muted);font-size:.9rem}.entry-line{display:flex;flex-wrap:wrap;gap:4px 8px;padding:2px 0}.entry-line-name{flex:1;min-width:0;overflow-wrap:anywhere}.entry-line-off .entry-line-name,.entry-line-off .entry-line-amount,.entry-line-off .entry-line-kcal{text-decoration:line-through}.entry-line-note{font-style:italic}.steps{margin-bottom:16px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.steps-heading{margin:0;font-size:1.1rem}.steps-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 0;font-variant-numeric:tabular-nums}.meal-lines{margin:0 0 12px;padding:0;border:0}.meal-lines legend{margin-bottom:4px;padding:0;font-weight:600}.meal-line-list{margin:0 0 12px;padding:0;list-style:none}.meal-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:end;padding:12px 0;border-bottom:1px solid var(--border)}.meal-line-name{grid-column:1 / -1}.meal-line-field label,.meal-line-picked-label{display:block;margin-bottom:4px;color:var(--muted);font-size:.9rem}.meal-line-field input{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--muted);border-radius:8px;background:var(--bg);color:var(--text);font:inherit}.meal-line-field input[aria-invalid=true]{border-color:var(--danger)}.meal-line .meal-line-remove{grid-column:1 / -1;justify-self:start}.meal-total{margin:0 0 12px;font-weight:600}.meal-line-picked{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}.meal-line-picked .meal-line-picked-label{width:100%;margin-bottom:0}.meal-line-picked-name{flex:1 1 auto;min-width:0;font-weight:600;overflow-wrap:anywhere}.meal-line-kcal-shown{display:flex;align-items:center;min-height:44px;font-weight:600}.meal-line-approx{margin-left:4px;color:var(--muted);font-weight:400}.meal-total-error{margin:0 0 12px;color:var(--danger)}.library h2{margin:0 0 12px;font-size:1.1rem}.library button{min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.library button:disabled{color:var(--muted);cursor:not-allowed;opacity:.6}.library button:focus-visible,.library input:focus-visible,.library select:focus-visible,.library textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.library .library-primary{border-color:var(--accent);background:var(--accent);color:var(--surface)}.library .library-danger{border-color:var(--danger);background:var(--danger);color:var(--surface)}.library-note{margin:0 0 16px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--muted)}.library-toolbar{display:flex;gap:8px;margin-bottom:16px}.library-form{margin-bottom:16px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.library-popover{position:absolute;top:calc(100% - 4px);right:0;z-index:5;box-sizing:border-box;width:20rem;max-width:min(100%,calc(100vw - 32px));padding:12px;border:1px solid var(--muted);border-radius:12px;background:var(--surface);color:var(--text)}.library-popover-above{top:auto;bottom:calc(100% - 4px)}.library-popover p{margin:0 0 12px;overflow-wrap:anywhere}.library-popover .library-actions button{flex:1;min-height:44px}.library h2:focus{outline:none}.library-live-note{margin:0 0 12px;color:var(--muted)}.library-filter{display:flex;gap:8px;margin-bottom:12px}.library .library-filter button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.library-field{margin:0 0 12px}.library-field>label{display:block;margin-bottom:4px;font-weight:600}.library-field input[type=text]{width:100%;min-height:44px;padding:8px 12px;border-radius:8px;background:var(--bg);color:var(--text);font:inherit}.library input[type=text]{border:1px solid var(--muted)}.library input[aria-invalid=true],.library-field input[aria-invalid=true]{border:2px solid var(--danger)}.library-field-error,.library-error{margin:4px 0 0;color:var(--danger)}.library-error{margin-bottom:12px}.library-actions{display:flex;gap:8px}.library-empty{color:var(--muted)}.library-checking{margin:0 0 12px;color:var(--muted)}.library-list{margin:0;padding:0;list-style:none}.library-item{position:relative;display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.library-item-text{flex:1;min-width:0;display:flex;flex-direction:column}.library-item-name{font-weight:600;overflow-wrap:anywhere}.library-item-detail{color:var(--muted);font-size:.9rem}.library-item-actions{display:flex;gap:8px}.library-search{margin:0 0 12px}.library-search label{display:block;margin-bottom:4px;font-weight:600}.library-search input[type=search]{box-sizing:border-box;width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--muted);border-radius:8px;background:var(--bg);color:var(--text);font:inherit;font-size:16px}.library-count{margin:0 0 8px;color:var(--muted)}.library-list:focus,.library-item:focus{outline:none}.library-list:focus-visible,.library-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.library-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.library .library-pager button{min-width:44px;min-height:44px}.library-pager span{white-space:nowrap}.library-ai{--ai-accent: var(--status-under);margin:0 0 12px}.library .library-ai-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;border:0;border-radius:999px;background:linear-gradient(120deg,var(--accent),var(--ai-accent));color:var(--surface)}.library .library-ai-button:before{content:"✦";content:"✦" / "";font-size:1.1em}.library .library-ai-button:disabled,.library .library-ai-button[aria-disabled=true]{color:var(--surface);cursor:default;opacity:.75}.library .library-ai-button.library-ai-blocked{border:1px dashed var(--border);background:var(--surface);color:var(--muted);opacity:1}.library-ai-hint,.library-ai-note{margin:6px 0 0;color:var(--muted)}.library-ai-note:empty{margin:0}.library .library-ai-message{margin:6px 0 0}.library .library-ai-small{margin-top:8px;color:var(--accent)}.library-ai-retry{margin-top:8px}.library-ai-retry>label{display:block;margin-bottom:4px;font-weight:600}.library-ai-retry-input{display:block;box-sizing:border-box;width:100%;min-height:44px;padding:8px 10px;font:inherit;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--muted);border-radius:8px;resize:vertical}.library-ai-retry-actions{display:flex;gap:8px;margin-top:8px}.library .library-ai-retry-actions .library-ai-small{margin-top:0}.library .library-ai-send{border-color:var(--accent);background:var(--accent);color:var(--surface)}.library .library-ai-small[aria-disabled=true]{cursor:default;opacity:.6}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.chart-panel{margin-top:8px}.chart{margin:0;min-width:0;overflow:hidden}.chart-caption{margin-bottom:4px;font-weight:600}.chart-plot{width:100%;min-height:200px}.chart-plot[hidden]{display:none}.chart-note{margin:4px 0 0;color:var(--muted)}.chart-plot .u-over{touch-action:pan-y}.chart-readout{min-height:1.5em;margin:4px 0 0;line-height:1.5;color:var(--text);font-variant-numeric:tabular-nums}.chart-readout[hidden]{display:none}.chart-table{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.metrics-title{margin:0 0 12px}.metrics-date{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-weight:600}.metrics-section{margin-bottom:16px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.metrics-heading{margin:0 0 8px;font-size:1.1rem}.metrics-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:0 4px 0 0;font:inherit;text-align:left;color:var(--text);background:none;border:0;border-radius:8px;cursor:pointer}.metrics-toggle:after{content:"";flex:none;width:8px;height:8px;margin-right:4px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg)}.metrics-toggle[aria-expanded=true]:after{transform:rotate(-135deg)}.metrics-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.metrics-field{display:inline-flex;align-items:center;gap:6px}.metrics-input{width:5em;min-height:44px;padding:8px 10px;font:inherit;font-size:1rem;font-variant-numeric:tabular-nums;color:var(--text);background:var(--bg);border:1px solid var(--muted);border-radius:8px}.metrics-date-input{width:auto;font-weight:400}.metrics-input[aria-invalid=true]{border:2px solid var(--danger)}.metrics-unit{color:var(--muted)}.metrics-button{min-height:44px;min-width:44px;padding:0 14px;font:inherit;font-weight:600;color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer}.metrics-input:focus-visible,.metrics-button:focus-visible,.metrics-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.metrics-message{margin:6px 0 0;color:var(--danger);font-weight:600}.metrics-note{margin:4px 0 0;color:var(--muted)}.metrics-note a{color:var(--accent)}.metrics-date-message,.metrics-status{margin:-8px 0 16px}.metrics-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.abe{display:block;overflow:visible}.abe-px-outline{fill:var(--abe-outline)}.abe-px-body{fill:var(--abe-body)}.abe-px-highlight{fill:var(--abe-highlight)}.abe-px-calyx{fill:var(--abe-calyx)}.abe-px-glasses{fill:var(--abe-glasses)}.abe-px-glint{fill:var(--abe-glint)}.abe-px-moustache{fill:var(--abe-moustache)}.abe-px-mouth{fill:var(--abe-mouth)}.abe-px-tongue{fill:var(--abe-tongue)}.abe-px-teeth{fill:var(--abe-teeth)}.abe-px-glove{fill:var(--abe-glove)}.abe-px-glove-outline{fill:var(--abe-glove-outline)}.abe-px-shoe{fill:var(--abe-shoe)}.abe-px-snack{fill:var(--abe-snack)}.abe-px-chip{fill:var(--abe-snack-chip)}.abe-frame{opacity:0;animation-timing-function:step-end}.abe-frame-0-1,.abe-frame-0-2,.abe-frame-0-4{opacity:1}.abe--idle .abe-frame{animation-duration:1.2s;animation-iteration-count:infinite}.abe--talking .abe-frame{animation-duration:.4s;animation-iteration-count:infinite}.abe--extra-snack .abe-frame{animation-duration:3.2s;animation-fill-mode:forwards}.abe--extra-sunglasses .abe-frame,.abe--extra-moustache .abe-frame{animation-duration:2s;animation-fill-mode:forwards}.abe-frame-0-2{animation-name:abe-frame-0-2}.abe-frame-1-2{animation-name:abe-frame-1-2}.abe-frame-0-4{animation-name:abe-frame-0-4}.abe-frame-1-4{animation-name:abe-frame-1-4}.abe-frame-2-4{animation-name:abe-frame-2-4}.abe-frame-3-4{animation-name:abe-frame-3-4}@keyframes abe-frame-0-2{0%{opacity:1}50%,to{opacity:0}}@keyframes abe-frame-1-2{0%{opacity:0}50%,to{opacity:1}}@keyframes abe-frame-0-4{0%{opacity:1}25%,to{opacity:0}}@keyframes abe-frame-1-4{0%{opacity:0}25%{opacity:1}50%,to{opacity:0}}@keyframes abe-frame-2-4{0%,25%{opacity:0}50%{opacity:1}75%,to{opacity:0}}@keyframes abe-frame-3-4{0%,50%{opacity:0}75%,to{opacity:1}}.abe--still *{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){.abe,.abe *{animation:none!important;transition:none!important}}.abe-screen-stage{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}.abe-screen-figure{flex:0 0 38%;max-width:220px}.abe-screen-speech{flex:1;min-width:0}.abe-screen-bubble{position:relative;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.abe-screen-bubble:before{content:"";position:absolute;top:28px;left:-7px;width:12px;height:12px;background:var(--surface);border-left:1px solid var(--border);border-bottom:1px solid var(--border);transform:rotate(45deg)}.abe-screen-said{margin:0;white-space:pre-line;overflow-wrap:anywhere}.abe-screen-asking{color:var(--muted);font-style:italic}.abe-screen-from{margin:0 0 4px;color:var(--muted);font-size:.85rem;font-weight:600}.abe-screen-link{min-height:44px;padding:0 4px;font:inherit;font-size:.9rem;color:var(--accent);background:none;border:0;text-decoration:underline;cursor:pointer}.abe-screen-ask-ai,.abe-screen-submit{min-height:44px;padding:0 16px;font:inherit;font-weight:700;color:var(--surface);background:var(--accent);border:1px solid var(--accent);border-radius:8px;cursor:pointer}.abe-screen-ask-ai{margin-top:10px}.abe-screen-link:disabled,.abe-screen-ask-ai:disabled,.abe-screen-submit:disabled{color:var(--muted);background:var(--surface);border-color:var(--border);text-decoration:none;cursor:default}.abe-screen-link:disabled{background:none}.abe-screen-message{margin:8px 0 0;color:var(--danger);font-weight:600}.abe-screen-form>label{display:block;margin-bottom:4px;font-weight:600}.abe-screen-row{display:flex;gap:8px}.abe-screen-input{flex:1;min-width:0;min-height:44px;padding:8px 10px;font:inherit;font-size:1rem;color:var(--text);background:var(--surface);border:1px solid var(--muted);border-radius:8px}.abe-screen-suggested h2,.abe-screen-faq h2{margin:24px 0 8px;font-size:1.05rem}.abe-screen-suggestions,.abe-screen-list{margin:0;padding:0;list-style:none}.abe-screen-suggestions{display:flex;flex-wrap:wrap;gap:8px}.abe-screen-suggestion{min-height:44px;padding:6px 14px;font:inherit;font-size:.95rem;text-align:left;color:var(--accent);background:var(--surface);border:1px solid var(--accent);border-radius:22px;cursor:pointer}.abe-screen-list>li{border-bottom:1px solid var(--border)}.abe-screen-question{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:8px 4px;font:inherit;font-weight:600;text-align:left;color:var(--text);background:none;border:0;cursor:pointer}.abe-screen-question:after{content:"";flex:none;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg)}.abe-screen-question[aria-expanded=true]:after{transform:rotate(-135deg)}.abe-screen-answer{margin:0;padding:0 4px 12px;white-space:pre-line;overflow-wrap:anywhere}.abe-screen-none{margin:0;color:var(--muted)}.abe-screen-link:focus-visible,.abe-screen-ask-ai:focus-visible,.abe-screen-submit:focus-visible,.abe-screen-input:focus-visible,.abe-screen-suggestion:focus-visible,.abe-screen-question:focus-visible,.abe-screen-bubble:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:400px){.abe-screen-stage{flex-direction:column;align-items:center}.abe-screen-figure{flex:none;width:45%;max-width:160px}.abe-screen-speech{align-self:stretch}.abe-screen-bubble:before{top:-7px;left:calc(50% - 6px);border-left:1px solid var(--border);border-bottom:0;border-top:1px solid var(--border)}}@media(prefers-reduced-motion:no-preference){.abe-screen-question:after{transition:transform .15s ease}}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.settings-section h2{margin:0 0 12px;font-size:1.1rem}.settings-section h3{margin:20px 0 10px;font-size:1rem}.settings-field{margin-bottom:14px}.settings-field label{display:block;margin-bottom:4px;font-weight:600}.settings-field input,.settings-field select{width:100%;min-height:44px;padding:8px 10px;font:inherit;font-size:1rem;color:var(--text);background:var(--bg);border:1px solid var(--muted);border-radius:8px}.settings-field input:focus-visible,.settings-field select:focus-visible,.settings-save:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.settings-field input[aria-invalid=true]{border:2px solid var(--danger)}.settings-field input:disabled,.settings-field select:disabled{color:var(--muted)}.settings-error{margin:4px 0 0;color:var(--danger);font-weight:600}.settings-line,.settings-note,.settings-saved{margin:8px 0;color:var(--muted)}.settings-note,.settings-saved{color:var(--text);font-weight:600}.settings-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px}.settings-actions p{margin:0}.settings-save{min-height:44px;padding:8px 24px;font:inherit;font-weight:600;color:var(--surface);background:var(--accent);border:none;border-radius:8px}.settings-save:disabled{opacity:.5}a.settings-save{display:inline-flex;align-items:center;text-decoration:none}.settings-secondary{color:var(--accent);background:transparent;border:1px solid var(--accent)}.settings-danger{color:var(--surface);background:var(--danger)}
