:root{--page:#f7f8fa;--surface:#fff;--text:#18212b;--text-muted:#526071;--primary:#0f766e;--pending:#92400e;--error:#b42318;--line:#e6e9ee;--line-strong:#d5dbe4;--primary-soft:#0f766e14;--primary-soft-strong:#0f766e24;--pending-soft:#fffaf0;--error-soft:#fdf3f2;--ok-soft:#f0faf9;--shadow-sm:0 1px 2px #18212b0a;--shadow-md:0 8px 24px #18212b0f;--shadow-lift:0 10px 28px #0f766e1f;--radius-card:14px;--radius-input:12px;--radius-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--nav-bottom:64px;--nav-side:220px;--nav-rail:84px;--context-col:320px;--font:system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--kind-meal:#9a6b2f;--kind-workout:#0f766e;--kind-sleep:#4c5f8a;--kind-measurement:#5b6472;--kind-body_feeling:#8b4d62;--kind-scene_summary:#6b6558}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--page);color:var(--text);font-family:var(--font);padding-bottom:calc(var(--nav-bottom) + env(safe-area-inset-bottom,0px));-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}body:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(900px 220px at 12% 0,#0f766e12,#0000 70%),radial-gradient(700px 180px at 88% 0,#92400e09,#0000 70%);height:220px;position:fixed;inset:0 0 auto}.skip-link{z-index:50;background:var(--surface);border:1px solid var(--line);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-input);position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--sp-3);top:var(--sp-3)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.shell{grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.sidenav{display:none}.stage{min-width:0;padding:var(--sp-4);width:100%}.columns{gap:var(--sp-4);grid-template-areas:"main""context""timeline";display:grid}.col-main{grid-area:main;min-width:0}.col-context{grid-area:context;min-width:0}.col-timeline{grid-area:timeline;min-width:0}main{max-width:760px}.brand{align-items:center;gap:var(--sp-2);letter-spacing:.01em;color:var(--text);font-weight:700;text-decoration:none;display:flex}.brand-mark{color:#fff;width:28px;height:28px;box-shadow:var(--shadow-sm);background:linear-gradient(145deg,#0f766e,#14857c 55%,#1a6f68);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.brand-sub{color:var(--text-muted);letter-spacing:.04em;font-size:11px;font-weight:500;display:block}.nav-list{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:flex}.nav-link{justify-content:center;align-items:center;gap:var(--sp-2);min-height:44px;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-input);color:var(--text-muted);white-space:nowrap;font-size:14px;text-decoration:none;transition:background .16s,color .16s,box-shadow .16s;display:flex}.nav-link:hover{background:var(--primary-soft);color:var(--text)}.nav-link[aria-current=page]{color:var(--primary);background:var(--primary-soft-strong);font-weight:600;box-shadow:inset 0 0 0 1px #0f766e2e}.nav-link[aria-current=page]:before{content:"";background:var(--primary);border-radius:2px;flex-shrink:0;width:3px;height:16px}.nav-icon{opacity:.9;flex-shrink:0;width:18px;height:18px;display:block}.bottomnav{z-index:40;-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);background:#ffffffeb;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #18212b0a}.bottomnav .nav-list{flex:1;gap:0}.bottomnav .nav-list li{flex:1}.bottomnav .nav-link{min-height:var(--nav-bottom);letter-spacing:.02em;border-radius:0;flex-direction:column;gap:3px;padding:10px 0 8px;font-size:11px}.bottomnav .nav-link[aria-current=page]{box-shadow:none;background:0 0}.bottomnav .nav-link[aria-current=page]:before{border-radius:0 0 2px 2px;order:-1;width:18px;height:3px;margin-bottom:2px}h1{margin:0 0 var(--sp-1);letter-spacing:-.02em;font-size:24px;font-weight:700;line-height:1.25}h2{margin:var(--sp-6) 0 var(--sp-3);letter-spacing:.01em;color:var(--text);align-items:center;gap:var(--sp-2);font-size:15px;font-weight:650;display:flex}h2:after{content:"";background:linear-gradient(90deg, var(--line), transparent);height:1px;margin-left:var(--sp-2);flex:1}h3{margin:var(--sp-5) 0 var(--sp-2);color:var(--text-muted);letter-spacing:.02em;text-transform:none;font-size:13px;font-weight:600}p{margin:0 0 var(--sp-3)}.muted{color:var(--text-muted);font-size:14px}code{font-family:var(--mono);background:var(--page);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:.9em}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--sp-4);margin-bottom:var(--sp-3);box-shadow:var(--shadow-sm)}.row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}ul.plain{margin:0;padding:0;list-style:none}ul.plain>li{padding:var(--sp-1) 0}.tag{border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--page);color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;padding:2px 10px;font-size:12px;font-weight:500;line-height:1.7;display:inline-flex}.tag.pending{color:var(--pending);background:var(--pending-soft);border-color:#f0e0c4}.tag.error{color:var(--error);background:var(--error-soft);border-color:#f6d5d1}.tag.ok{color:var(--primary);background:var(--ok-soft);border-color:#cfe8e5}.tag.safety{color:var(--error);border-color:var(--error);background:var(--error-soft);font-weight:600}.tag.kind{background:var(--page);border-color:#0000;gap:6px}.tag.kind:before{content:"";background:var(--text-muted);border-radius:50%;flex-shrink:0;width:7px;height:7px}[data-kind=meal] .tag.kind:before,.tag.kind[data-kind=meal]:before{background:var(--kind-meal)}[data-kind=workout] .tag.kind:before,.tag.kind[data-kind=workout]:before{background:var(--kind-workout)}[data-kind=sleep] .tag.kind:before,.tag.kind[data-kind=sleep]:before{background:var(--kind-sleep)}[data-kind=measurement] .tag.kind:before,.tag.kind[data-kind=measurement]:before{background:var(--kind-measurement)}[data-kind=body_feeling] .tag.kind:before,.tag.kind[data-kind=body_feeling]:before{background:var(--kind-body_feeling)}[data-kind=scene_summary] .tag.kind:before,.tag.kind[data-kind=scene_summary]:before{background:var(--kind-scene_summary)}form.input textarea,input[type=text],input[type=search],input[type=email],input[type=password],input[type=date],select{width:100%;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-input);padding:var(--sp-3);transition:border-color .16s,box-shadow .16s}form.input textarea:hover,input:hover,select:hover{border-color:#c5ced9}form.input textarea:focus,input:focus,select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0f766e1f}form.input textarea{resize:vertical;min-height:110px;font-size:16px;line-height:1.65}label.row,label{gap:var(--sp-1);flex-direction:column;font-size:14px;display:flex}label.row{flex:1;min-width:160px}button{font:inherit;min-height:44px;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-input);border:1px solid var(--line-strong);background:var(--surface);color:var(--text);cursor:pointer;transition:background .16s,border-color .16s,box-shadow .16s,transform .12s}button:hover{background:#fafbfc;border-color:#c5ced9}button:active{transform:translateY(1px)}button.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:var(--shadow-sm);font-weight:600}button.primary:hover{box-shadow:var(--shadow-lift);background:#0d6b64;border-color:#0d6b64}button.link{color:var(--primary);text-underline-offset:3px;padding:var(--sp-2);background:0 0;border:none;min-height:44px;text-decoration:underline}button.ghost{color:var(--text-muted);background:0 0;border-color:#0000}button.ghost:hover{background:var(--page);color:var(--text);border-color:#0000}button[disabled]{opacity:.55;cursor:not-allowed;transform:none}:where(a){color:var(--primary)}:where(a):hover{text-decoration-thickness:2px}details{border-top:1px solid var(--line);padding-top:var(--sp-2);margin-top:var(--sp-2)}summary{cursor:pointer;min-height:44px;color:var(--primary);align-items:center;font-size:14px;font-weight:500;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary:before{content:"";border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:5px solid;width:0;height:0;margin-right:8px;transition:transform .16s}details[open]>summary:before{transform:rotate(90deg)}hr.rule{border:0;border-top:1px solid var(--line);margin:var(--sp-5) 0}.state{border:1px dashed var(--line-strong);border-radius:var(--radius-card);background:linear-gradient(180deg, #f7f8faa6, transparent 48%), var(--surface);padding:var(--sp-5);color:var(--text-muted);font-size:14px}.state h3{color:var(--text);margin-top:0;font-size:15px}.state.error{background:var(--error-soft);color:var(--error);border-style:solid;border-color:#f6d5d1}.state.error h3{color:var(--error)}.state.offline{background:var(--pending-soft);color:var(--pending);border-color:#f0e0c4}.state.offline h3{color:var(--pending)}.state ul{margin:var(--sp-2) 0 0;padding-left:1.2em}.samples{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.samples a,.samples button{background:var(--surface);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-pill);border:1px solid var(--line-strong);color:var(--text-muted);min-height:40px;font-size:14px;text-decoration:none}.samples a:hover,.samples button:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.composer{background:var(--surface);border:1px solid var(--line);padding:var(--sp-4);box-shadow:var(--shadow-md);margin-bottom:var(--sp-2);border-radius:18px;position:relative}.composer:before{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 1px #fffc}.composer>label{color:var(--text-muted);margin-bottom:var(--sp-2);letter-spacing:.01em;font-size:13px;font-weight:600}.composer form.input{margin:0}.composer form.input textarea{border-color:var(--line);background:linear-gradient(180deg, #fcfdfd, var(--surface));border-radius:12px}.composer-hint{margin:var(--sp-2) 0 0;color:var(--text-muted);font-size:13px;line-height:1.5}.composer-foot{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);color:var(--text-muted);font-size:12px;display:flex}.composer-foot.over{color:var(--error)}.composer-foot button.primary{min-width:96px;padding-inline:var(--sp-5);border-radius:var(--radius-pill)}.coverage{color:var(--pending);padding-left:var(--sp-3);margin-bottom:var(--sp-3);background:linear-gradient(90deg, var(--pending-soft), transparent 80%);border-left:3px solid #d4a017;font-size:13px}.advice-card{border-left:4px solid var(--primary);background:linear-gradient(135deg, #0f766e0a, transparent 42%), var(--surface)}.advice-card.safety{border-left-color:var(--error);background:linear-gradient(135deg, #b423180a, transparent 42%), var(--surface)}.advice-card .headline{margin-bottom:var(--sp-2);letter-spacing:-.01em;font-size:16px;font-weight:650;line-height:1.45}.advice-card .evidence{color:var(--text-muted);font-size:13px;line-height:1.55}.advice-card .cutoff{color:var(--text-muted);margin-top:var(--sp-2);font-size:12px;font-family:var(--mono)}.advice-card.stale{opacity:.82;border-left-color:var(--pending)}.metric{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:32px;font-weight:700;line-height:1.15}.metric .unit{color:var(--text-muted);margin-left:4px;font-size:14px;font-weight:500}.chart{height:128px;padding-top:var(--sp-2);border-bottom:1px solid var(--line-strong);align-items:flex-end;gap:6px;display:flex}.chart .bar{background:linear-gradient(180deg, #14857c, var(--primary));border-radius:4px 4px 0 0;flex:1;min-width:8px;position:relative;box-shadow:inset 0 1px #ffffff26}.chart .bar.selected{background:linear-gradient(180deg, #b45309, var(--pending))}.chart-axis{color:var(--text-muted);margin-top:var(--sp-1);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px;font-size:11px;display:flex}.chart-axis span{text-align:center;flex:1;min-width:40px}.gap-note{color:var(--pending);padding-left:var(--sp-3);margin-top:var(--sp-2);background:linear-gradient(90deg, var(--pending-soft), transparent 90%);border-left:3px solid #d4a017;font-size:13px}table.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}table.data th,table.data td{text-align:left;padding:var(--sp-2) var(--sp-2);border-bottom:1px solid var(--line);vertical-align:top}table.data th{color:var(--text-muted);letter-spacing:.02em;background:var(--page);font-size:12px;font-weight:600}table.data tr:hover td{background:#0f766e08}.detail-block dt{color:var(--text-muted);margin-top:var(--sp-4);letter-spacing:.02em;font-size:12px;font-weight:600}.detail-block dd{margin:4px 0 0;font-size:14px;line-height:1.55}.timeline-list{gap:var(--sp-2);flex-direction:column;display:flex}.timeline-list>li.card{padding-left:calc(var(--sp-4) + 4px);margin-bottom:0;transition:border-color .16s,box-shadow .16s;position:relative}.timeline-list>li.card:before{content:"";background:var(--line-strong);border-radius:0 3px 3px 0;width:3px;position:absolute;top:14px;bottom:14px;left:0}.timeline-list>li[data-kind=meal]:before{background:var(--kind-meal)}.timeline-list>li[data-kind=workout]:before{background:var(--kind-workout)}.timeline-list>li[data-kind=sleep]:before{background:var(--kind-sleep)}.timeline-list>li[data-kind=measurement]:before{background:var(--kind-measurement)}.timeline-list>li[data-kind=body_feeling]:before{background:var(--kind-body_feeling)}.timeline-list>li[data-kind=scene_summary]:before{background:var(--kind-scene_summary)}.timeline-list>li:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.timeline-list p{font-size:14px;line-height:1.55}.centered{max-width:420px;margin:0 auto;padding-top:min(14vh,120px)}.centered .brand{margin-bottom:var(--sp-4);font-size:18px}.centered .brand-mark{border-radius:12px;width:36px;height:36px;font-size:15px}.centered h1{margin-bottom:var(--sp-2);font-size:28px}.centered .lede{color:var(--text-muted);margin-bottom:var(--sp-5);font-size:15px;line-height:1.6}.login-card{box-shadow:var(--shadow-md);padding:var(--sp-5);border-radius:16px}.login-card form .row{gap:var(--sp-2)}.login-card input[type=password]{flex:1;min-width:0}.login-card button.primary{border-radius:var(--radius-input);padding-inline:var(--sp-5);flex-shrink:0}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-5);padding-bottom:var(--sp-3);border-bottom:1px solid #0000;flex-wrap:wrap;display:flex}.page-head .meta{flex-direction:column;gap:2px;min-width:0;display:flex}.page-head h1{margin:0}.page-head .note{color:var(--text-muted);margin:0;font-size:13px;line-height:1.5}.page-head .actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;font-size:14px;display:flex}.page-head .actions a{color:var(--text-muted);min-height:36px;padding:0 var(--sp-2);border-radius:8px;align-items:center;text-decoration:none;display:inline-flex}.page-head .actions a:hover{color:var(--primary);background:var(--primary-soft)}.receipt-card{background:linear-gradient(180deg, var(--ok-soft), var(--surface) 55%);box-shadow:var(--shadow-md);border-color:#cfe8e5}@media (min-width:768px){.shell{grid-template-columns:var(--nav-rail) minmax(0, 1fr)}.sidenav{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:var(--sp-4) var(--sp-2);background:#ffffffb8;flex-direction:column;align-self:start;align-items:stretch;min-height:100dvh;display:flex;position:sticky;top:0}.sidenav .brand{margin-bottom:var(--sp-5);text-align:center;justify-content:center}.sidenav .brand-text{display:none}.sidenav .nav-list{gap:var(--sp-1);flex-direction:column}.sidenav .nav-link{padding:var(--sp-2) 4px;text-align:center;flex-direction:column;justify-content:center;gap:4px;font-size:11px}.sidenav .nav-link[aria-current=page]:before{order:-1;width:16px;height:3px;margin-bottom:2px}.bottomnav{display:none}body{padding-bottom:0}.stage{padding:var(--sp-5) var(--sp-5) var(--sp-6)}h1{font-size:28px}main{max-width:760px}}@media (min-width:1200px){.shell{grid-template-columns:var(--nav-side) minmax(0, 1fr);border-right:1px solid var(--line);background:0 0;max-width:1440px;margin:0 auto}.sidenav{padding:var(--sp-5) var(--sp-3);background:#ffffff8c}.sidenav .brand{padding:0 var(--sp-2);margin-bottom:var(--sp-5);justify-content:flex-start}.sidenav .brand-text{display:block}.sidenav .nav-link{justify-content:flex-start;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);flex-direction:row;min-height:44px;font-size:14px}.sidenav .nav-link[aria-current=page]:before{order:0;width:3px;height:16px;margin:0}.columns{grid-template-columns:minmax(0, 1fr) var(--context-col);column-gap:var(--sp-5);grid-template-areas:"main context""timeline context"}.col-main main{max-width:760px}.col-context{top:var(--sp-5);align-self:start;position:sticky}.col-context>.card:first-child{margin-top:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.sk-stack{gap:var(--sp-3);flex-direction:column;display:flex}.sk-card{gap:var(--sp-2);flex-direction:column;display:flex}.sk-line{background:linear-gradient(90deg, var(--line) 0%, #eef1f5 45%, var(--line) 90%);background-size:220% 100%;border-radius:6px;height:12px;animation:1.5s ease-in-out infinite sk-sweep;display:block}.sk-line.sk-tall{height:18px}@keyframes sk-sweep{0%{background-position:130% 0}to{background-position:-30% 0}}.sk-status{margin:0 0 var(--sp-3);color:var(--text-muted);font-size:13px}.sk-splash{justify-content:center;align-items:center;gap:var(--sp-2);flex-direction:column;min-height:70vh;display:flex}.sk-splash .sk-mark{letter-spacing:.04em;color:var(--primary);font-size:20px;font-weight:700}.sk-splash .sk-status{text-align:center;margin:0}
