:root{font-family:Inter,Hiragino Sans,Yu Gothic,sans-serif;color:#22312d;background:#f4f1eb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.45}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:1.2em;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";-webkit-font-smoothing:antialiased}main{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:48px 0 80px}.hero{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin-bottom:32px}.eyebrow{margin:0 0 8px;color:#8c5c3f;font-size:.75rem;font-weight:800;letter-spacing:.18em}h1{margin:0;font-family:Georgia,Yu Mincho,serif;font-size:clamp(2.4rem,7vw,5rem);font-weight:500;letter-spacing:-.04em}.lead{color:#66736f;margin-bottom:0}.data-storage-link{color:inherit;text-decoration-color:#98a39f;text-underline-offset:4px}.data-storage-link:hover,.data-storage-link:focus-visible{color:#22312d;text-decoration-color:currentColor}.auth-actions,.actions,.ranges{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.auth-actions{position:absolute;z-index:30;top:24px;right:24px;justify-content:flex-end}.user-menu{position:relative}.user-avatar-button{display:inline-grid;width:42px;height:42px;padding:2px;place-items:center;border:1px solid #335f51;border-radius:50%;background:#fff;cursor:pointer}.user-avatar{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}.user-avatar-fallback{display:grid;place-items:center;color:#335f51;background:#e4eee9;font-weight:800}.user-menu-panel{position:absolute;z-index:30;top:calc(100% + 10px);right:0;width:min(300px,calc(100vw - 24px));padding:16px 12px 10px;border:1px solid #c7d5ce;border-radius:4px;background:#fff;box-shadow:0 14px 30px #22312d2e}.user-menu-profile{display:grid;gap:3px;padding:0 12px 14px;border-bottom:1px solid #d9e2dd}.user-menu-profile strong,.user-menu-profile span{overflow-wrap:anywhere}.user-menu-profile span{color:#66736f;font-size:.9rem}.user-menu-group{display:grid;gap:6px;padding:12px;border-bottom:1px solid #d9e2dd}.user-menu-group label{margin:0}.user-menu-group select{width:100%;min-width:0}.user-menu-action,.user-menu-logout{display:flex;align-items:center;gap:7px;width:100%;padding:12px;border:0;background:transparent;text-align:left;font-weight:700;cursor:pointer}.user-menu-action{color:#31443e;border-bottom:1px solid #d9e2dd}.user-menu-logout{padding-bottom:8px;color:#8a302e}.user-menu-action:hover,.user-menu-action:focus-visible,.user-menu-logout:hover,.user-menu-logout:focus-visible{background:#f3f6f4}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #c6cec9;border-radius:4px;padding:9px 15px;background:#fff;color:#31443e}.button.primary{color:#fff;background:#335f51;border-color:#335f51}#sync.is-syncing .material-symbols-outlined{animation:sync-spin .8s linear infinite}@keyframes sync-spin{to{transform:rotate(360deg)}}.ranges button{border:0;border-bottom:2px solid transparent;padding:9px 12px;color:#69736f;background:transparent}.ranges button.active{color:#17231f;border-color:#e4674d}.button.danger{color:#8a302e;border-color:#d8aaa5}.hidden{display:none!important}.panel{background:#ffffffb8;border:1px solid #d9ddd8;border-radius:6px;padding:20px;margin-bottom:16px;box-shadow:0 10px 30px #2d37330a}.message{position:fixed;z-index:1000;top:78px;right:24px;display:flex;align-items:center;gap:14px;width:min(440px,calc(100vw - 36px));border:1px solid #b9c8c0;border-radius:4px;padding:13px 14px 13px 16px;color:#294c40;background:#e5ece7;box-shadow:0 12px 32px #1a30292e}.message-enter{animation:message-enter .22s ease-out}.message.error{color:#7b2928;border-color:#d8aaa5;background:#f5dedd}.message.success{color:#285440;border-color:#b8d2c2;background:#dcece3}.message span{flex:1;min-width:0}.message-close{flex:0 0 auto;width:28px;height:28px;border:0;padding:0;color:currentColor;background:transparent;font-size:1.2rem;line-height:1}@keyframes message-enter{0%{opacity:.35;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}label{display:block;margin-bottom:6px;font-size:.82rem;font-weight:700;color:#596963}input,select{min-width:180px;border:1px solid #c7cec9;border-radius:4px;padding:9px 10px;background:#fff}.profile-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:6px 0 24px}.profile-fields,.profile-actions{display:flex;align-items:center;gap:10px}.profile-fields{min-width:0}.profile-actions{flex:0 0 auto;margin-left:auto}.profile-label{flex:0 0 auto;color:#596963;font-size:.82rem;font-weight:700;white-space:nowrap}.profile-person-icon{font-size:24px}.profile-fields select,.profile-fields #profile-name{width:210px;min-width:120px}.profile-fields #birthdate{width:155px;min-width:140px}.birthdate-display{min-width:108px;color:#31443e;white-space:nowrap}.profile-edit-button{display:inline-grid;flex:0 0 auto;width:38px;height:38px;padding:8px;place-items:center;border:0;color:#335f51;background:transparent}.profile-edit-button:hover,.profile-edit-button:focus-visible{color:#1f493c;background:#e5ece7}.profile-edit-button .material-symbols-outlined{font-size:21px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading h2{margin:0 0 6px;font-size:1rem}.section-heading p,.note{margin:0;color:#66736f;font-size:.88rem}.family-list{list-style:none;margin:16px 0;padding:0;display:grid;gap:8px}.family-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #e0e4e1}.family-list li:last-child{border-bottom:0}.family-identity{display:grid;gap:2px}.family-identity small{color:#6c7975}.family-badge{display:inline-block;width:fit-content;color:#486057;font-size:.72rem;font-weight:700}.invitation-form{display:grid;gap:16px}.invitation-form label{display:grid;gap:7px;margin:0}.invitation-form input{width:100%}.modal{width:min(520px,calc(100% - 32px));padding:22px;border:1px solid #c7cec9;border-radius:6px;color:#22312d;background:#fff;box-shadow:0 22px 60px #0f302c40}.members-modal{width:min(640px,calc(100% - 32px))}.data-storage-modal,.storage-modal{width:min(660px,calc(100% - 32px))}.data-storage-list{display:grid;gap:0;margin:0 0 20px}.data-storage-list>div{padding:13px 0;border-bottom:1px solid #e0e4e1}.data-storage-list>div:first-child{padding-top:0}.data-storage-list dt{margin-bottom:4px;font-weight:700}.data-storage-list dd{margin:0;color:#66736f;font-size:.9rem;line-height:1.65}.modal::backdrop{background:#17323b7a}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.modal-header h2{margin:0 0 5px;font-size:1.2rem}.modal-header p{margin:0;color:#66736f;font-size:.88rem}.modal-close{display:inline-grid;width:38px;height:38px;padding:0;place-items:center;border:1px solid #c6cec9;border-radius:4px;color:#31443e;background:#fff;font-size:1.2rem}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.modal-actions .button{flex:0 0 auto;white-space:nowrap}.destructive-note{margin:0 0 20px;color:#7b2928;font-size:.9rem;line-height:1.7}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0}.export-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}.storage-trigger{display:inline-flex;align-items:center;gap:4px;border:0;padding:6px 2px;color:#66736f;background:transparent;font-size:.78rem;white-space:nowrap}.storage-trigger:hover{color:#22312d;text-decoration:underline}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0 36px}.metric{background:#fffdf8;border:1px solid #dedbd3;padding:20px;min-height:125px}.metric-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.metric .label{color:#69736f;font-size:13px}.metric-date{flex:0 0 auto;color:#69736f;font-size:12px}.metric .value{color:#17231f;font:42px/1.1 Georgia,serif;margin-top:14px}.metric small{font:13px system-ui;color:#69736f}.chart-card{background:#fffdf8;border:1px solid #dedbd3;padding:24px;margin-top:14px;break-inside:avoid}.chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;color:#69736f;font-size:13px;min-height:50px}.chart-head>div:first-child{display:flex;align-items:center;gap:10px}.chart-head h2{color:#17231f;font:22px Georgia,serif;margin:0}.chart-side{margin-left:auto;text-align:right;min-width:270px}.chart-readout{display:flex;justify-content:flex-end;align-items:baseline;gap:14px;min-height:24px;white-space:nowrap}.readout-date,.readout-value{color:#69736f}.readout-value strong{color:#17231f;font-size:15px}.chart-icon{flex:0 0 auto;font-size:27px}.coral{color:#e4674d}.blue{color:#3e7691}.green{color:#547b67}.gold{color:#b88836}.violet{color:#77648b}.pulse{color:#d08057}.steps{color:#905d47}.chart{min-height:260px;margin-top:20px;position:relative}.chart svg{display:block;width:100%;height:260px;overflow:visible}.chart.blood-pressure-chart{min-height:400px}.chart.blood-pressure-chart svg{height:400px}.chart.weight-composition-chart{min-height:400px}.chart.weight-composition-chart svg{height:400px}.empty{display:grid;place-items:center;height:240px;color:#69736f}.gridline{stroke:#dedbd3;stroke-width:1}.axis-label,.axis-unit{fill:#69736f;font-size:11px}.axis-unit{font-weight:700}.axis-line,.axis-tick{stroke:#69736f;stroke-width:1}.secondary-gridline{stroke:#dedbd3;stroke-width:1}.time-gridline{stroke:#d2cec5;stroke-width:1;stroke-dasharray:3 5}.time-gridline.major{stroke:#aaa69d;stroke-dasharray:none}.axis-break-band{fill:#fffdf8}.axis-break-mark{fill:none;stroke:#69736f;stroke-width:1.5;vector-effect:non-scaling-stroke}.chart-hitbox{fill:transparent;pointer-events:all}.hover-line{stroke:#17231f;stroke-width:1.25;stroke-dasharray:4 3;opacity:0;pointer-events:none}.hover-line.visible{opacity:.75}.range-stem{stroke:#547b67;stroke-width:1.5;opacity:.5}.sample-bar{opacity:.82}.blood-pressure-range{stroke:#b7cdd6;stroke-width:1;vector-effect:non-scaling-stroke}.blood-pressure-endpoint{stroke:#3e7691;stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}.point-mark{fill:none;stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}.pulse_pressure-point{stroke:#d08057}.heart-rate-range{stroke:#b9cec4;stroke-width:1;vector-effect:non-scaling-stroke}.heart-rate-endpoint{stroke:#3f7058;stroke-width:2;stroke-linecap:round;vector-effect:non-scaling-stroke}.legend{display:flex;gap:20px;justify-content:center;color:#69736f;font-size:12px}.legend span:before{content:"";display:inline-block;width:18px;height:2px;margin:0 7px 3px 0;background:#3e7691}.weight-legend .weight-total:before{background:#e4674d}.weight-legend .fat-mass:before{background:#b88836}.weight-legend .non-fat-mass:before{background:#547b67}.bp-legend .pressure-range:before{width:3px;height:16px;margin-bottom:-4px;background:#b7cdd6;box-shadow:0 -1px #3e7691,0 1px #628da0}.bp-legend .pulse-point:before{width:2px;height:2px;margin-bottom:3px;background:#d08057}@media(max-width:760px){.message{top:66px;right:10px;width:calc(100vw - 20px)}.auth-actions{top:14px;right:10px}main{width:min(100% - 20px,1120px);padding-top:24px}.hero,.profile-toolbar{align-items:stretch;flex-direction:column}.profile-fields{flex-wrap:wrap}.profile-fields select,.profile-fields #profile-name{flex:1;width:auto}.profile-actions{align-self:flex-end;margin-left:0}.toolbar{align-items:stretch;flex-direction:column}.export-actions{justify-content:flex-end}.section-heading{align-items:stretch;flex-direction:column}.summary{grid-template-columns:1fr}.chart-card{padding:18px 12px}.chart-head{flex-direction:column}.chart-side{min-width:0;width:100%;text-align:left}.chart-readout{justify-content:flex-start;flex-wrap:wrap}.storage-actions{align-items:stretch;flex-direction:column}.storage-actions .button{width:100%}}@media print{:root{background:#fff}main{width:100%;padding:0}.auth-actions,.toolbar,.message,.profile-toolbar{display:none!important}.chart-card{margin-bottom:12px;box-shadow:none}.chart-card:nth-child(3n+1){break-before:page}}
