:root{--ppgr-background:#f7fafd;--ppgr-surface:#fff;--ppgr-field-surface:#f1f5f8;--ppgr-chart-surface:#f8fbfe;--ppgr-sidebar:#234a68;--ppgr-primary:#3568c6;--ppgr-primary-hover:#2b58aa;--ppgr-predicted:#3a70d9;--ppgr-actual:#159b9a;--ppgr-prediction-band:#dce9f7;--ppgr-risk-low:#f5ecf6;--ppgr-risk-normal:#eaf8f4;--ppgr-risk-medium:#fff7e8;--ppgr-risk-high:#fff1f0;--ppgr-text:#17324a;--ppgr-muted-text:#5b7083;--ppgr-border:#d8e4ef;--ppgr-danger:#b42318;--ppgr-danger-soft:#fff1f0;--ppgr-warning:#8a4b08;--ppgr-warning-soft:#fff7e8;--ppgr-success:#087a6a;--ppgr-success-soft:#eaf8f4;--ppgr-focus:#71889a;--ppgr-shadow-sm:0 1px 2px #17324a0f;--ppgr-shadow-md:0 12px 30px #234a681a;--ppgr-radius-sm:10px;--ppgr-radius-md:14px;--ppgr-radius-lg:18px;--ppgr-font:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--ppgr-background)}body{color:var(--ppgr-text);background:var(--ppgr-background);font-family:var(--ppgr-font);margin:0;font-size:16px;line-height:1.55}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}:where(button,a,summary):focus-visible{outline:2px solid var(--ppgr-focus);outline-offset:2px}:where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea),:where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):focus{outline:none}html[data-input-modality=keyboard] :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):focus{outline:2px solid var(--ppgr-focus);outline-offset:2px}.tabular{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.ppgr-button{border:1px solid var(--ppgr-primary);border-radius:var(--ppgr-radius-sm);color:#fff;background:var(--ppgr-primary);white-space:nowrap;cursor:pointer;flex:none;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:10px 18px;font-weight:650;line-height:1.2;transition:background-color .18s,border-color .18s,opacity .18s;display:inline-flex}.ppgr-button:hover:not(:disabled){background:var(--ppgr-primary-hover);border-color:var(--ppgr-primary-hover)}.ppgr-button:disabled{opacity:.46;cursor:not-allowed}.ppgr-button.secondary{color:var(--ppgr-text);background:var(--ppgr-surface);border-color:var(--ppgr-border)}.ppgr-button.danger{color:var(--ppgr-danger);background:var(--ppgr-danger-soft);border-color:#f0b8b3}.ppgr-card{border:1px solid var(--ppgr-border);border-radius:var(--ppgr-radius-md);background:var(--ppgr-surface);min-width:0;box-shadow:var(--ppgr-shadow-sm);padding:20px}.ppgr-badge{border:1px solid var(--ppgr-border);min-height:26px;color:var(--ppgr-muted-text);background:var(--ppgr-background);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 9px;font-size:12px;font-weight:700;display:inline-flex}.ppgr-badge--info{color:#28589a;background:#edf4ff;border-color:#cbdcf6}.ppgr-badge--success{color:var(--ppgr-success);background:var(--ppgr-success-soft);border-color:#b8e0d7}.ppgr-badge--warning{color:var(--ppgr-warning);background:var(--ppgr-warning-soft);border-color:#f1d5a5}.ppgr-badge--danger{color:var(--ppgr-danger);background:var(--ppgr-danger-soft);border-color:#f0b8b3}.ppgr-metric{border:1px solid var(--ppgr-border);border-radius:var(--ppgr-radius-md);background:var(--ppgr-surface);align-content:start;gap:6px;min-height:112px;padding:18px;display:grid}.ppgr-metric__label,.ppgr-metric__detail{color:var(--ppgr-muted-text);font-size:13px}.ppgr-metric__value{font-size:clamp(26px,3vw,34px);line-height:1.15}.ppgr-metric__value small{color:var(--ppgr-muted-text);margin-left:4px;font-size:13px}.ppgr-alert{border-radius:var(--ppgr-radius-sm);color:var(--ppgr-warning);background:var(--ppgr-warning-soft);border:1px solid #f1d5a5;gap:2px;padding:12px 16px;display:grid}.ppgr-alert--danger{color:var(--ppgr-danger);background:var(--ppgr-danger-soft);border-color:#f0b8b3}.ppgr-alert--info{color:#28589a;background:#edf4ff;border-color:#cbdcf6}.ppgr-alert span{font-size:14px}.ppgr-empty{color:var(--ppgr-muted-text);text-align:center;padding:30px 16px}.ppgr-empty strong{color:var(--ppgr-text)}.ppgr-spinner{align-items:center;gap:8px;display:inline-flex}.ppgr-spinner>span{border:2px solid var(--ppgr-border);border-top-color:var(--ppgr-primary);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite ppgr-spin}@keyframes ppgr-spin{to{transform:rotate(360deg)}}.ppgr-chart{background:0 0;min-width:0;padding:12px 0 0}.ppgr-chart__heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.ppgr-chart h2{margin:0;font-size:20px}.ppgr-chart p{color:var(--ppgr-muted-text);margin:5px 0 0}.ppgr-chart__summary{margin-top:10px!important}.ppgr-chart__summary strong{color:var(--ppgr-text);font-weight:750}.ppgr-chart__legend{color:var(--ppgr-muted-text);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.ppgr-chart__legend span{align-items:center;gap:5px;display:inline-flex}.ppgr-chart__legend i{width:22px;height:3px;display:inline-block}.ppgr-chart__legend .actual{background:var(--ppgr-actual)}.ppgr-chart__legend .predicted{border-top:3px dashed var(--ppgr-predicted)}.ppgr-chart__legend .band{background:var(--ppgr-prediction-band);height:10px}.ppgr-chart__notice{background:var(--ppgr-warning-soft);border-radius:6px;padding:3px 8px;font-size:12px;display:inline-block;color:var(--ppgr-warning)!important}.ppgr-chart__canvas{border-radius:var(--ppgr-radius-sm);background:var(--ppgr-chart-surface);width:100%;height:330px;margin-top:8px}.ppgr-chart--plain .ppgr-chart__canvas{background:0 0}.ppgr-chart__sr-data{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.ppgr-table-wrap{width:100%;overflow-x:auto}.ppgr-table-wrap table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.ppgr-table-wrap th,.ppgr-table-wrap td{border-bottom:1px solid var(--ppgr-border);text-align:left;white-space:nowrap;padding:10px 12px}.ppgr-table-wrap th{color:var(--ppgr-muted-text);background:var(--ppgr-chart-surface);font-size:13px}@media (max-width:767px){.ppgr-card{padding:16px}.ppgr-chart__heading{display:grid}.ppgr-chart__canvas{height:270px}}
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.block{display:block}.resize{resize:both}}.skip-link{z-index:1000;color:#fff;background:var(--ppgr-sidebar);border-radius:8px;padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.mobile-app{border-inline:1px solid var(--ppgr-border);background:var(--ppgr-background);width:min(100%,820px);min-height:100dvh;margin:0 auto}html[data-conversation-viewport=active],html[data-conversation-viewport=active] body{overscroll-behavior:none;height:100%;min-height:0;overflow:hidden}.mobile-header{z-index:20;border-bottom:1px solid var(--ppgr-border);background:#fffffff5;justify-content:space-between;align-items:center;min-height:64px;padding:10px 18px;display:flex;position:sticky;top:0}.mobile-brand{color:var(--ppgr-text);align-items:center;gap:9px;text-decoration:none;display:flex}.mobile-brand img{object-fit:contain}.mobile-header button{width:44px;height:44px;color:var(--ppgr-text);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.mobile-app>main{min-height:calc(100dvh - 70px);padding:30px 18px 104px}.mobile-app.conversation-app{height:var(--ppgr-conversation-height,100dvh);min-height:0;position:fixed;top:0;left:0;right:0;overflow:hidden;transform:none}.mobile-app.conversation-app>main{height:100%;min-height:0;padding:0}.bottom-nav{z-index:30;width:min(100%,820px);min-height:70px;padding:6px max(12px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));border-top:1px solid var(--ppgr-border);background:#fffffff7;grid-template-columns:repeat(3,1fr);margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{min-height:52px;color:var(--ppgr-muted-text);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;text-decoration:none;display:flex}.bottom-nav a.active{color:var(--ppgr-primary);background:#edf4ff;font-weight:700}.mobile-heading{margin-bottom:20px}.mobile-heading h1{letter-spacing:-.025em;margin:0;font-size:clamp(26px,7vw,34px)}.mobile-heading p{color:var(--ppgr-muted-text);margin:6px 0 0}.mobile-stack{gap:14px;display:grid}.mobile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.mobile-center{place-items:center;min-height:100dvh;display:grid}.hero-glucose{border:1px solid var(--ppgr-border);border-radius:var(--ppgr-radius-lg);background:#fff;gap:10px;padding:22px;display:grid}.hero-glucose strong{font-variant-numeric:tabular-nums;font-size:44px;line-height:1}.hero-glucose strong small{color:var(--ppgr-muted-text);margin-left:5px;font-size:14px}.source-line{justify-content:space-between;align-items:center;gap:10px;display:flex}.stepper{gap:8px;margin-bottom:18px;display:flex}.stepper span{background:var(--ppgr-border);border-radius:999px;flex:1;height:5px}.stepper span.active{background:var(--ppgr-primary)}.meal-row{grid-template-columns:minmax(0,1fr) 110px;align-items:end;gap:10px;display:grid}.candidate-card{border:1px solid var(--ppgr-border);border-radius:var(--ppgr-radius-md);width:100%;min-height:44px;color:var(--ppgr-text);text-align:left;cursor:pointer;box-shadow:var(--ppgr-shadow-sm);background:#fff;grid-template-columns:minmax(0,1fr);padding:18px;display:grid;position:relative}.candidate-card:hover{background:#f8fbfc}.candidate-card.selected{border-color:var(--ppgr-border);box-shadow:inset 0 0 0 2px var(--ppgr-primary), var(--ppgr-shadow-sm)}.candidate-content{gap:12px;display:grid}.candidate-content>strong{font-size:18px}.candidate-metrics{color:var(--ppgr-muted-text);flex-wrap:wrap;gap:8px 16px;font-size:14px;display:flex}.login-screen{background:linear-gradient(160deg, var(--ppgr-background), #edf4fb);place-items:center;min-height:100dvh;padding:20px;display:grid}.login-screen .ppgr-card{width:min(440px,100%)}.login-screen h1{margin:12px 0 0;font-size:32px}.login-screen form{gap:15px;margin-top:22px;display:grid}.field{gap:6px;display:grid}.field label{font-size:14px;font-weight:650}.field :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){border:1px solid var(--ppgr-border);width:100%;min-height:46px;color:var(--ppgr-text);background:#fff;border-radius:10px;outline:none;padding:10px 12px}.field select,.conversation-plan select{appearance:none;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%2364787f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;height:46px;padding-right:38px}.field :where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):focus,.ingredient-editor input:focus{border:1px solid var(--ppgr-border);box-shadow:none;background-color:#fff;outline:none}html[data-input-modality=keyboard] .ingredient-editor input:focus,html[data-input-modality=keyboard] .conversation-plan input:focus,html[data-input-modality=keyboard] .conversation-plan select:focus,html[data-input-modality=keyboard] .conversation-composer textarea:focus{outline:2px solid var(--ppgr-focus);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.field small,.muted{color:var(--ppgr-muted-text)}.form-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.history-link{color:inherit;text-decoration:none}.history-link .ppgr-card{transition:border-color .18s,box-shadow .18s}.history-link:hover .ppgr-card{box-shadow:var(--ppgr-shadow-md);border-color:#a9c4e6}.sync-strip{border:1px solid var(--ppgr-border);min-height:94px;box-shadow:var(--ppgr-shadow-sm);background:#fff;border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.sync-strip>div{padding:18px}.glucose-reading{justify-content:center;align-items:center;gap:7px;display:flex}.glucose-reading strong{color:#111827;font-variant-numeric:tabular-nums;font-size:clamp(38px,10vw,50px);line-height:1}.glucose-reading span{color:var(--ppgr-muted-text);font-size:13px}.device-status{border-left:1px solid var(--ppgr-border);color:var(--ppgr-muted-text);place-content:center;gap:9px;font-size:14px;display:grid}.device-status span{white-space:nowrap;align-items:center;gap:8px;display:flex}.device-status i{background:#b9c6cc;border-radius:50%;width:8px;height:8px}.device-status i.online{background:var(--ppgr-success);box-shadow:0 0 0 3px var(--ppgr-success-soft)}.entry-mode{border:1px solid var(--ppgr-border);background:#fff;border-radius:12px;grid-template-columns:1fr 1fr;gap:5px;padding:5px;display:grid}.entry-mode button,.entry-mode a,.period-picker button{min-height:46px;color:var(--ppgr-muted-text);cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;display:flex}.entry-mode button.active,.entry-mode a.active,.period-picker button.active{color:var(--ppgr-primary);background:#edf4ff;font-weight:700}.entry-mode a{text-decoration:none}.period-picker{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.home-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.home-heading>div{min-width:0}.ppgr-chat-button{border:1px solid var(--ppgr-border);min-height:44px;color:var(--ppgr-primary);background:#fff;border-radius:10px;flex:none;justify-content:center;align-items:center;gap:7px;padding:9px 13px;font-weight:700;text-decoration:none;display:inline-flex}.dish-search-card,.search-combobox{position:relative}.search-combobox svg{color:var(--ppgr-muted-text);position:absolute;top:14px;left:13px}.search-combobox input{padding-left:42px}.dish-suggestions{border:1px solid var(--ppgr-border);box-shadow:var(--ppgr-shadow-md);background:#fff;border-radius:11px;gap:4px;margin-top:8px;padding:6px;display:grid}.dish-suggestions button{min-height:56px;color:var(--ppgr-text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;display:flex}.dish-suggestions button:hover,.dish-suggestions button:focus-visible{background:var(--ppgr-chart-surface)}.dish-suggestions button span{gap:2px;display:grid}.dish-suggestions button small{color:var(--ppgr-muted-text)}.selected-dish h2,.evaluation-results h2,.candidate-card h3{margin:3px 0 0}.icon-action{width:44px;height:44px;color:var(--ppgr-danger);cursor:pointer;background:#fff3f2;border:0;border-radius:9px;place-items:center;display:grid}.ingredient-editor{gap:10px;margin-top:16px;display:grid}.ingredient-editor .meal-row{grid-template-columns:minmax(0,1fr) 104px}.ingredient-editor .meal-row label{align-self:center;font-weight:650}.ingredient-editor .meal-row div{align-items:center;gap:7px;display:flex}.ingredient-editor .meal-row input{border:1px solid var(--ppgr-border);text-align:right;background:#fff;border-radius:9px;outline:none;width:82px;min-height:42px;padding:7px 5px 7px 8px}.ingredient-editor input::-webkit-inner-spin-button{margin-left:7px}.conversation-grams input::-webkit-inner-spin-button{margin-left:7px}.ingredient-editor .meal-row div span{color:var(--ppgr-muted-text);position:static}.energy-total{border-top:1px solid var(--ppgr-border);justify-content:space-between;align-items:baseline;margin-top:16px;padding-top:13px;display:flex}.energy-total strong{font-size:22px}.evaluation-action{background:#f4f8ff;justify-content:space-between;align-items:center;gap:16px;display:flex}.evaluation-action>div{flex:1;justify-content:space-between;align-items:baseline;gap:14px;display:flex}.evaluation-action strong{font-size:28px}.evaluation-action small{color:var(--ppgr-muted-text)}.evaluation-results{gap:14px;margin-top:10px;display:grid}.evaluation-results>header h2,.recommendation-title{margin:0;font-size:22px;font-weight:750}.evaluation-results>header p{color:var(--ppgr-muted-text);margin:4px 0 0}.suggestion-items{flex-wrap:wrap;gap:6px;display:flex}.suggestion-items span{color:var(--ppgr-text);background:var(--ppgr-chart-surface);border-radius:999px;padding:5px 8px;font-size:13px}.explanation{border-left:3px solid var(--ppgr-primary);color:var(--ppgr-text);background:#f6f9fd;margin:0;padding:12px}.confirm-meal-button{width:100%;box-shadow:none;margin-top:4px;position:static}.participant-toast{z-index:80;right:max(18px,50vw - 392px);bottom:calc(84px + env(safe-area-inset-bottom));color:#155f53;max-width:min(420px,100vw - 36px);box-shadow:var(--ppgr-shadow-md);background:#eefaf7;border:1px solid #b8e0d7;border-radius:12px;align-items:flex-start;gap:9px;padding:13px 16px;display:flex;position:fixed}.calendar-heading{justify-content:space-between;align-items:center;display:flex}.calendar-heading button{width:44px;height:44px;color:var(--ppgr-text);background:var(--ppgr-chart-surface);cursor:pointer;border:0;border-radius:9px;place-items:center;display:grid}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-weekdays{color:var(--ppgr-muted-text);text-align:center;margin-top:12px;font-size:12px}.calendar-grid{margin-top:6px}.calendar-grid>span,.calendar-grid button{min-height:54px}.calendar-grid button{color:var(--ppgr-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;align-content:center;place-items:center;gap:2px;padding:4px 1px;display:grid}.calendar-grid button:hover{background:var(--ppgr-chart-surface)}.calendar-grid button.selected{border-color:var(--ppgr-primary);color:var(--ppgr-primary);background:#edf4ff;font-weight:700}.calendar-grid button small{color:var(--ppgr-muted-text);font-size:10px}.history-day-title{margin:10px 0 12px;font-size:20px}.meal-slots{gap:10px;display:grid}.meal-slot{border:1px solid var(--ppgr-border);min-height:78px;color:var(--ppgr-text);text-align:left;background:#fff;border-radius:13px;grid-template-columns:66px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;display:grid}.meal-slot.filled{cursor:pointer;box-shadow:var(--ppgr-shadow-sm)}.meal-slot.filled:hover{background:#f8fbfc}.meal-slot.history-focus{border-color:var(--ppgr-primary);box-shadow:inset 0 0 0 1px var(--ppgr-primary), var(--ppgr-shadow-sm)}.meal-slot.empty{color:var(--ppgr-muted-text);background:#f8fafb}.meal-slot-period{font-weight:750}.meal-slot-main{gap:4px;display:grid}.meal-slot-main small,.meal-slot-caret{color:var(--ppgr-muted-text)}.meal-slot .ppgr-badge{gap:4px}.dialog-overlay{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#142a3652;position:fixed;inset:0}.dialog-overlay.confirm-dialog-overlay{z-index:70}.meal-detail-dialog{z-index:61;border:1px solid var(--ppgr-border);background:#fff;border-radius:18px;grid-template-rows:auto minmax(0,1fr);width:min(760px,100vw - 32px);height:min(760px,100dvh - 32px);display:grid;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 70px #0f233038}.dialog-heading{border-bottom:1px solid var(--ppgr-border);justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 22px;display:flex}.dialog-heading h2{margin:0}.dialog-heading p{color:var(--ppgr-muted-text);margin:5px 0 0}.icon-button{width:44px;height:44px;color:var(--ppgr-text);background:var(--ppgr-chart-surface);cursor:pointer;border:0;border-radius:10px;flex:none;place-items:center;display:grid}.meal-detail-body{padding:22px;overflow-y:auto}.detail-metrics{grid-template-columns:1fr 1fr;gap:10px;display:grid}.detail-metrics span{color:var(--ppgr-muted-text);background:var(--ppgr-chart-surface);border-radius:10px;gap:5px;padding:13px;display:grid}.detail-metrics strong{color:var(--ppgr-text);font-size:18px}.history-photos{border-top:1px solid var(--ppgr-border);padding-top:4px}.history-photos h3,.history-photos p{margin:0}.meal-delete-action{border-top:1px solid var(--ppgr-border);justify-content:flex-end;padding-top:18px;display:flex}.meal-delete-action .ppgr-button{min-width:112px}.photo-button.compact{min-height:44px;padding:8px 12px;font-size:14px}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.photo-grid figure{min-width:0;margin:0;position:relative}.photo-grid img{object-fit:cover;border-radius:10px;width:100%;height:130px;display:block}.photo-grid figure button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#1c2932b8;border:1px solid #ffffffb8;border-radius:10px;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:6px;right:6px;box-shadow:0 3px 12px #0000002e}.photo-evidence h2{margin-bottom:4px}.photo-button{color:#fff;background:var(--ppgr-primary);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:10px 14px;font-weight:700;display:flex}.photo-button input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.photo-evidence ul{color:var(--ppgr-muted-text);margin:0;padding-left:20px}.ambiguity-options{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.ambiguity-options span{width:100%;color:var(--ppgr-muted-text);font-size:13px}.ambiguity-options button{border:1px solid var(--ppgr-primary);min-height:42px;color:var(--ppgr-primary);cursor:pointer;background:#fff;border-radius:9px;padding:8px 12px}.profile-logout{justify-content:center;align-items:center;gap:8px;width:100%;display:inline-flex}button:focus-visible,a:focus-visible,label.photo-button:focus-within{outline:2px solid var(--ppgr-focus);outline-offset:2px}[hidden]{display:none!important}.conversation-page{box-sizing:border-box;height:100%;min-height:0;padding-bottom:var(--ppgr-keyboard-inset,0px);background:var(--ppgr-background);grid-template-rows:auto minmax(0,1fr);display:grid}.conversation-page-header{z-index:20;min-height:60px;padding:max(8px, env(safe-area-inset-top)) 14px 8px;border-bottom:1px solid var(--ppgr-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;grid-template-columns:88px minmax(0,1fr) 88px;align-items:center;display:grid;position:relative}.conversation-page-header a{min-width:44px;min-height:44px;color:var(--ppgr-text);border-radius:9px;justify-self:start;align-items:center;gap:5px;padding:8px 6px;text-decoration:none;display:inline-flex}.conversation-page-header a:hover{background:var(--ppgr-chart-surface)}.conversation-page-header h1{text-align:center;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:18px;overflow:hidden}.conversation-clear-button{min-width:44px;min-height:44px;color:var(--ppgr-danger);cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;justify-self:end;align-items:center;padding:8px 6px;font-weight:700;display:inline-flex}.conversation-clear-button:hover{background:var(--ppgr-danger-soft)}.conversation-panel{background:var(--ppgr-background);grid-template-rows:minmax(0,1fr) auto;min-height:0;display:grid;overflow:hidden}.conversation-timeline{overscroll-behavior:contain;scroll-behavior:smooth;align-content:start;gap:20px;min-height:0;padding:22px 18px 26px;display:grid;overflow-y:auto}.conversation-turn{gap:10px;display:grid}.conversation-load-earlier{border:1px solid var(--ppgr-border);min-height:44px;color:var(--ppgr-primary);cursor:pointer;background:#fff;border-radius:9px;justify-self:center;padding:8px 14px}.conversation-user-message{color:#173d4b;white-space:pre-wrap;background:#eaf3f7;border-radius:15px 15px 4px;justify-self:end;max-width:min(82%,560px);padding:11px 14px}.conversation-assistant-message{max-width:min(88%,620px);color:var(--ppgr-text);white-space:pre-wrap;padding:2px;line-height:1.65}.conversation-cycle{color:var(--ppgr-muted-text);align-items:center;gap:12px;font-size:12px;display:flex}.conversation-cycle:before,.conversation-cycle:after{background:var(--ppgr-border);content:"";flex:1;height:1px}.conversation-plan{border:1px solid var(--ppgr-border);background:#fcfefe;border-radius:13px;gap:14px;padding:16px;display:grid}.conversation-result,.conversation-recommendations{background:0 0;border:0;gap:14px;padding:0;display:grid}.conversation-plan.historical{opacity:.82}.conversation-plan-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.conversation-plan-heading strong{font-size:18px}.conversation-plan-heading span{color:var(--ppgr-muted-text);font-size:13px}.conversation-plan-meta{gap:12px;width:100%;display:flex;overflow:hidden}.conversation-plan-meta-field{width:calc(50% - 6px);min-width:0;max-width:calc(50% - 6px);color:var(--ppgr-muted-text);flex:0 0 calc(50% - 6px);gap:5px;font-size:13px;display:grid}.conversation-plan-control{border:1px solid var(--ppgr-border);background:#fff;border-radius:9px;width:100%;min-width:0;height:46px;display:block;overflow:hidden}.conversation-plan input,.conversation-plan select,.conversation-composer textarea{border:1px solid var(--ppgr-border);width:100%;min-height:46px;color:var(--ppgr-text);background-color:#fff;border-radius:9px;outline:none;padding:9px 11px}.conversation-plan-meta input,.conversation-plan-meta select{background-color:#0000;border:0;border-radius:0;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;max-height:100%;display:block}.conversation-plan-meta input[type=date]{inline-size:100%;min-inline-size:0;height:44px;padding-block:0;line-height:44px}.conversation-plan-meta input[type=date]::-webkit-datetime-edit{align-items:center;height:44px;padding:0;display:flex}.conversation-plan-meta input[type=date]::-webkit-date-and-time-value{text-align:left;align-items:center;min-width:0;height:44px;padding:0;display:flex}.conversation-plan input:focus,.conversation-plan select:focus,.conversation-composer textarea:focus{border:1px solid var(--ppgr-border);box-shadow:none;background-color:#fff}.conversation-plan-meta input:focus,.conversation-plan-meta select:focus{background-color:#0000;border:0}html[data-input-modality=keyboard] .conversation-plan-control:focus-within{outline:2px solid var(--ppgr-focus);outline-offset:2px}html[data-input-modality=keyboard] .conversation-plan-control :focus{outline:none}.conversation-plan input:disabled,.conversation-plan select:disabled{color:var(--ppgr-muted-text);opacity:1;background:#f5f8f9}.conversation-plan-dishes{gap:10px;display:grid}.conversation-plan-dish{border-top:1px solid var(--ppgr-border);gap:8px;padding:12px 0 0;display:grid}.conversation-plan-dish>div,.conversation-plan-dish>label{justify-content:space-between;align-items:center;gap:12px;min-height:40px;display:flex}.conversation-plan-dish>div button{width:38px;height:38px;color:var(--ppgr-danger);cursor:pointer;background:#fff3f2;border:0;border-radius:8px;place-items:center;display:grid}.conversation-grams{flex:0 0 94px;justify-content:flex-end;align-items:center;gap:7px;width:94px;display:flex}.conversation-grams input{text-align:right;width:72px;height:40px;min-height:40px;padding:6px 4px 6px 7px}.conversation-grams small{color:var(--ppgr-muted-text);pointer-events:none;position:static}.conversation-plan-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.conversation-plan-actions .ppgr-button{width:100%}.secondary-button{color:var(--ppgr-primary)!important;border:1px solid var(--ppgr-primary)!important;background:#fff!important}.conversation-result header h2,.conversation-recommendations h2{margin:0;font-size:21px}.conversation-result header p{color:var(--ppgr-muted-text);margin:4px 0 0}.conversation-receipt{background:#eefaf7;border:1px solid #b8e0d7;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:14px;display:flex}.conversation-receipt>div{color:#155f53;align-items:flex-start;gap:9px;display:flex}.conversation-receipt span{gap:3px;display:grid}.conversation-receipt small{color:#44756d}.conversation-receipt button{border:1px solid var(--ppgr-border);min-height:44px;color:var(--ppgr-primary);cursor:pointer;white-space:nowrap;background:#fff;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:8px 12px;font-weight:700;display:inline-flex}.conversation-composer{z-index:10;margin:8px 12px max(12px, env(safe-area-inset-bottom));border:1px solid var(--ppgr-border);background:#fff;border-radius:18px;position:relative;box-shadow:0 10px 30px #17324a1a}.conversation-composer textarea{resize:none;appearance:none;border:0;border-radius:18px;width:100%;height:52px;min-height:52px;max-height:160px;padding:14px 52px 14px 15px;font-size:16px;line-height:24px;overflow-y:auto}.conversation-composer textarea:focus{box-shadow:none;background:0 0;border:0;outline:none}html[data-input-modality=keyboard] .conversation-composer:focus-within,html[data-input-modality=keyboard] .conversation-composer textarea:focus{outline:none}html[data-conversation-keyboard=open] .conversation-composer{margin-bottom:8px}.example-button{width:38px;height:38px;color:var(--ppgr-primary);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;padding:0;display:grid;position:absolute;bottom:7px;right:8px}.confirm-dialog{z-index:71;border:1px solid var(--ppgr-border);background:#fff;border-radius:16px;width:min(420px,100vw - 32px);padding:22px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 70px #0f233040}.confirm-dialog h2{margin:0;font-size:21px}.confirm-dialog p{color:var(--ppgr-muted-text);margin:9px 0 0;line-height:1.6}.confirm-dialog-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.confirm-dialog-actions .ppgr-button{min-height:44px}@media (min-width:768px){.mobile-app>main{padding-inline:28px}.mobile-app.conversation-app>main{padding-inline:0}.conversation-timeline{padding-inline:28px}.conversation-composer{margin-inline:28px}}@media (max-width:420px){.mobile-grid{grid-template-columns:1fr}.meal-row{grid-template-columns:1fr 92px}.evaluation-action{flex-direction:column;align-items:stretch}.sync-strip>div{padding:14px}.glucose-reading strong{font-size:38px}.device-status{padding-left:12px!important}.meal-detail-dialog{border:0;border-radius:0;width:100%;height:100dvh;inset:0;transform:none}.detail-metrics{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.profile-identity{gap:4px;display:grid}.profile-identity span,.profile-identity small{color:var(--ppgr-muted-text)}.profile-identity strong{font-size:28px}
