@charset "UTF-8";
:root{--ink:#26382e;--muted:#7a837b;--sage:#e9eee3;--green:#4a6145;--light:#f7f8f3;--line:#e5e8df;--white:#fff;--warm:#f7eddf;--radius:22px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--light);font-synthesis:none;font-size:15px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #9bb991;outline-offset:3px}button{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.1px;font-weight:570;line-height:1.2;margin-bottom:9px}h2{font-size:20px;letter-spacing:-.45px;font-weight:560;margin-bottom:18px}h3{font-size:17px;font-weight:550;margin-bottom:7px}p{margin-bottom:12px}small,.muted{color:var(--muted)}small{font-size:12px}svg.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.skip-link{position:fixed;top:-80px;left:20px;padding:12px;background:var(--white);z-index:99}.skip-link:focus{top:10px}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;border-right:1px solid var(--line);background:#f3f5ee;padding:36px 23px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;font-size:29px;font-weight:630;letter-spacing:-1.3px;line-height:1}.brand-mark{display:grid;place-items:center;width:38px;height:42px;background:var(--green);color:white;border-radius:14px 14px 14px 4px;font-size:31px;font-weight:400;padding-bottom:7px}.brand small{display:block;font-size:9px;letter-spacing:.02em;font-weight:450;margin-top:8px}.sidebar nav{margin-top:51px;display:flex;flex-direction:column;gap:7px}.nav-link{display:flex;align-items:center;gap:13px;padding:13px 16px;border-radius:12px;font-size:14px;color:#747e72;font-weight:500;border:0;background:transparent;text-align:left}.nav-link:hover{background:#e9ede2}.nav-link.active{color:var(--green);background:#e2e8d9}.nav-link.active svg{stroke-width:2}.sidebar-bottom{margin-top:auto;padding-top:45px}.goal-note{background:#e7ecdf;border-radius:17px;padding:20px 17px;position:relative;overflow:hidden}.eyebrow{font-size:10px;letter-spacing:1.4px;font-weight:600;color:#88917f}.goal-note strong{display:block;font-size:21px;line-height:1.35;font-weight:520;letter-spacing:-.5px;margin:16px 0 10px}.goal-note p{font-size:11px;color:#77826d;line-height:1.7;margin:0}.sprout{position:absolute;right:-1px;bottom:-30px;font-size:102px;line-height:1;color:#d5dfc8;transform:rotate(15deg)}.local-label{display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;color:#8b9387;margin-top:23px}.local-label i{width:5px;height:5px;background:#8ca07c;border-radius:50%}.app-shell{margin-left:224px;padding:0 48px;max-width:1580px}.topbar{height:100px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin-bottom:34px;font-size:12px;color:var(--muted)}.top-actions{display:flex;gap:18px;align-items:center}.icon-button{border:0;background:transparent;padding:8px;display:inline-flex;align-items:center;justify-content:center;position:relative;border-radius:10px}.icon-button:hover{background:var(--sage)}.notification-dot{width:5px;height:5px;border-radius:50%;background:#bc7953;position:absolute;top:6px;right:8px}.avatar{width:34px;height:34px;border:1px solid #dee4d4;border-radius:50%;background:#e5eadb;font-size:12px;color:var(--green)}main{min-height:65vh;outline:none;max-width:1120px;margin:auto}footer{font-size:10px;color:#9ca294;text-align:center;margin:35px 0 26px;letter-spacing:.5px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.page-heading p{font-size:13px;color:var(--muted);margin:0}.pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;white-space:nowrap;padding:6px 10px;background:var(--sage);border-radius:8px;color:#68765e}.pill.warm{background:#f2e8d9;color:#956f4e}.pill svg{width:13px;height:13px}.stats-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:24px}.stat{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:17px 20px;display:flex;align-items:center;gap:14px;min-width:0}.stat-icon{width:36px;height:36px;background:#f0f3e9;border-radius:11px;display:grid;place-items:center;color:#849274;flex-shrink:0}.stat small{display:block;font-size:10px;margin-bottom:4px}.stat strong{font-size:20px;font-weight:550;line-height:1.3;letter-spacing:-.6px}.stat em{font-style:normal;font-size:10px;color:var(--muted);display:block;margin-top:2px}.stat .text-button{margin-left:auto}.text-button{background:transparent;border:0;font-size:12px;color:var(--green);padding:5px 0;display:inline-flex;align-items:center;gap:5px}.text-button:hover{text-decoration:underline}.text-button svg{width:15px;height:15px}.hero{background:#e9eee2;border-radius:var(--radius);padding:30px;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;min-height:260px;overflow:hidden;position:relative;margin-bottom:20px}.hero .eyebrow{color:#78856d;display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:10px;letter-spacing:1px}.hero h2{font-size:29px;line-height:1.2;font-weight:550;letter-spacing:-1px;margin-bottom:12px;max-width:400px}.hero p{font-size:12px;max-width:330px;color:#7a8572}.hero .meta{color:#798570;gap:15px;margin:14px 0 20px}.meta{display:flex;align-items:center;gap:13px;font-size:11px}.meta span{display:inline-flex;align-items:center;gap:5px}.meta svg{width:14px;height:14px}.button{border:0;border-radius:11px;padding:12px 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:550;line-height:1.3;background:var(--green);color:white}.button:hover{background:#3d5339}.button.secondary{background:var(--white);color:var(--green);border:1px solid var(--line)}.button.secondary:hover{background:#f0f3eb}.button.soft{background:#e2e8d9;color:var(--green)}.button.danger{background:#faf0ed;color:#a44d3a}.button svg{width:16px;height:16px}.button-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hero .text-button{padding-left:9px}.meal-art{width:100%;max-width:280px;height:auto;justify-self:center;overflow:visible}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:29px}.quick-action{border:1px solid var(--line);border-radius:12px;background:var(--white);padding:14px 10px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;color:#697660}.quick-action:hover{border-color:#aebd9f;background:#f2f5ec}.quick-action svg{width:17px;height:17px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,1fr);gap:26px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px}.section-heading h2{margin:0;font-size:17px}.timeline,.day-card,.panel,.diary-card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:20px}.timeline-row{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid #f0f1ec}.timeline-row:last-child{border:0;padding-bottom:2px}.timeline-row:first-child{padding-top:0}.timeline-time{font-size:11px;color:#8b9386;width:36px;flex-shrink:0}.timeline-dot{width:8px;height:8px;border:1px solid #cdd7c2;border-radius:50%;flex-shrink:0}.timeline-row.done .timeline-dot{background:#769069;border-color:#769069}.timeline-row.skipped{opacity:.55}.timeline-title{font-size:12px;flex:1;min-width:0}.timeline-title small{display:block;font-size:10px;margin-top:4px}.timeline-row button{padding:3px}.tiny-check{width:26px;height:26px;border:1px solid var(--line);background:#fff;border-radius:50%;display:grid;place-items:center;color:#7e8e72;flex-shrink:0}.tiny-check svg{width:13px;height:13px}.tiny-check.is-done{background:var(--sage);border-color:var(--sage)}.day-anchor{display:flex;align-items:center;gap:12px;margin-bottom:19px;font-size:12px}.day-anchor:last-child{margin-bottom:0}.day-anchor>svg{color:#99a387;width:18px;height:18px}.day-anchor strong{font-size:12px;font-weight:500;display:block}.day-anchor small{display:block;font-size:10px;margin-top:2px}.day-anchor .time{margin-left:auto;font-size:12px;color:#6c7a60}.mini-note{font-size:11px;line-height:1.65;color:var(--muted);margin:18px 0 0;padding-top:15px;border-top:1px solid var(--line)}.review-banner{border:1px solid #e7dfd0;border-radius:11px;padding:11px 14px;background:#f8f3e9;font-size:11px;color:#958161;display:flex;align-items:center;gap:10px;margin-bottom:23px}.review-banner svg{width:16px;height:16px;flex-shrink:0}.review-banner button{font-size:11px;margin-left:auto;white-space:nowrap;color:#886e46}.diary-section{margin-top:27px}.empty{padding:24px 12px;text-align:center;color:var(--muted);font-size:12px}.empty svg{margin:0 auto 12px;display:block;width:27px;height:27px;color:#abb59c}.empty p{max-width:420px;margin:0 auto;line-height:1.8}.entry{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;align-items:flex-start}.entry:last-child{border:0}.entry-icon{width:33px;height:33px;background:var(--sage);border-radius:9px;display:grid;place-items:center;color:#819374;flex-shrink:0}.entry-content{min-width:0;flex:1}.entry p{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:4px}.entry small{font-size:10px}.entry img{width:100px;height:85px;object-fit:cover;border-radius:9px;display:block;margin:8px 0}.entry audio{max-width:100%;height:35px;margin:8px 0}.entry .icon-button svg{width:14px;height:14px}.week-controls{display:flex;align-items:center;gap:9px;font-size:12px}.week-controls .icon-button{border:1px solid var(--line);background:white}.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;margin:24px 0}.day-button{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 4px;color:var(--muted);font-size:10px;display:flex;flex-direction:column;gap:4px;align-items:center}.day-button strong{font-size:18px;font-weight:500;color:var(--ink)}.day-button.active{background:var(--green);border-color:var(--green);color:#c3cfbb}.day-button.active strong{color:#fff}.day-button.today:not(.active){border-color:#a1b28f}.nutrition-summary{display:flex;gap:30px;padding:18px 22px;background:var(--sage);border-radius:13px;margin-bottom:22px}.nutrition-summary strong{font-size:18px;font-weight:500;display:block}.nutrition-summary small{font-size:10px;display:block;color:#87917c}.nutrition-summary .summary-label{font-size:11px;color:#7d8b71;align-self:center;margin-right:auto}.meal-card{display:flex;background:#fff;border:1px solid var(--line);border-radius:18px;margin-bottom:12px;padding:18px;align-items:center;gap:20px}.meal-card .meal-art{width:105px;flex-shrink:0}.meal-card .meal-info{flex:1;min-width:0}.meal-card .eyebrow{font-size:9px;letter-spacing:.5px;display:flex;gap:9px;align-items:center;margin-bottom:6px}.meal-card h3{font-size:17px}.meal-card .meta{font-size:10px;color:#8a9480;margin-top:9px}.meal-controls{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.meal-controls .button{padding:9px 12px;font-size:11px}.optional-label{color:#a29580}.support-note{font-size:11px;color:var(--muted);margin-top:18px;line-height:1.7}.chart-panel{padding:24px;background:white;border:1px solid var(--line);border-radius:20px;margin-bottom:22px}.chart{width:100%;height:220px;display:block}.chart text{font-size:11px;fill:#8c9584}.chart line{stroke:#edf0e8;stroke-width:1}.chart-empty{height:220px;display:grid;place-items:center;background:linear-gradient(#fff,#f6f8f1);border-radius:10px}.chart-empty p{font-size:12px;color:var(--muted);max-width:300px;text-align:center}.insight{background:var(--sage);padding:20px 22px;border-radius:15px;display:flex;align-items:flex-start;gap:14px;font-size:12px;margin-bottom:22px}.insight svg{flex-shrink:0;color:#829673}.insight p{margin:0;line-height:1.8}.weight-table{width:100%;border-collapse:collapse;font-size:12px}.weight-table th{text-align:left;color:var(--muted);font-weight:400;font-size:11px}.weight-table td,.weight-table th{padding:12px 8px;border-bottom:1px solid var(--line)}.weight-table tr:last-child td{border:0}.weight-table td:last-child{text-align:right}.profile-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:7px;font-size:11px;margin-bottom:17px;color:#6c7764}.field input,.field textarea,.field select,input.control,textarea.control{width:100%;padding:12px 13px;border:1px solid #dce2d5;background:#fff;border-radius:10px;color:var(--ink);min-width:0}.field textarea,textarea.control{resize:vertical;min-height:90px}.field input:focus,.field textarea:focus{border-color:#8aa278}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field small{font-size:10px}.checks{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.check-chip{font-size:11px;padding:8px 10px;display:flex;align-items:center;gap:6px;background:#f3f5ee;border-radius:8px}.check-chip input{accent-color:var(--green)}.confirm-line{display:flex;gap:9px;align-items:flex-start;font-size:11px;line-height:1.7;color:#76816c;margin:18px 0}.confirm-line input{accent-color:var(--green);margin-top:4px}.detail-block{font-size:12px;margin-top:12px}.detail-block summary{cursor:pointer;color:var(--green);font-size:11px}.detail-block p{font-size:11px;color:var(--muted);line-height:1.8;margin-top:12px}.integration{padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;display:flex;align-items:flex-start;gap:10px}.integration:last-child{border:0}.integration .pill{margin-left:auto;font-size:9px}.integration small{display:block;font-size:10px;margin-top:4px}.chat-box{background:white;border:1px solid var(--line);border-radius:20px;padding:25px;min-height:460px;display:flex;flex-direction:column}.chat-messages{display:flex;flex-direction:column;gap:17px;flex:1;max-height:500px;overflow:auto;padding-right:3px}.message{max-width:88%;font-size:13px;line-height:1.8;padding:15px 18px;border-radius:16px;background:#f0f4e9;white-space:pre-wrap;overflow-wrap:anywhere;align-self:flex-start}.message.user{background:#faf5ed;align-self:flex-end}.message small{display:block;font-size:9px;margin-bottom:5px;text-transform:uppercase;letter-spacing:1px}.chat-compose{display:flex;gap:10px;margin-top:25px}.chat-compose textarea{min-height:48px;max-height:160px;resize:vertical;flex:1;padding:12px;border:1px solid var(--line);border-radius:11px;font-size:12px}.chat-compose button{align-self:flex-end;height:46px}.suggestions{display:flex;gap:7px;flex-wrap:wrap;margin:17px 0}.suggestions button{border:1px solid var(--line);background:#fff;border-radius:20px;padding:7px 11px;font-size:10px;color:#839075}.mode-note{font-size:10px;color:#9b9f95;margin-bottom:18px;display:flex;align-items:center;gap:6px}.mode-note .icon{width:12px;height:12px}dialog{border:1px solid var(--line);border-radius:24px;padding:0;width:min(560px,calc(100% - 32px));max-height:90vh;color:var(--ink);box-shadow:0 25px 90px #26382e26;background:var(--light)}dialog::backdrop{background:#25322965;backdrop-filter:blur(4px)}.modal-body{padding:27px}.modal-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:19px}.modal-heading h2{margin:0;font-size:23px}.modal-heading .icon-button{margin:-7px -8px 0 0}.modal-description{font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:20px}.recipe-visual{background:var(--sage);border-radius:14px;display:grid;place-items:center;margin-bottom:22px;height:145px;overflow:hidden}.recipe-visual .meal-art{max-width:170px}.recipe-ingredients{font-size:12px;width:100%;border-collapse:collapse}.recipe-ingredients td{padding:8px 0;border-bottom:1px solid var(--line)}.recipe-ingredients td:last-child{text-align:right;color:var(--muted)}.recipe-steps{font-size:12px;line-height:1.8;padding-left:19px;color:#6c7962}.recipe-steps li{padding:5px 0 5px 5px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.error-text{color:#aa644a;font-size:11px;white-space:pre-wrap;margin-top:10px}.shopping-list{max-height:53vh;overflow:auto}.shopping-row{display:flex;gap:11px;padding:11px 0;align-items:center;font-size:12px;border-bottom:1px solid var(--line)}.shopping-row input{accent-color:var(--green)}.shopping-row span:last-child{margin-left:auto;font-size:11px;color:var(--muted)}.shopping-row:has(input:checked){text-decoration:line-through;opacity:.5}.reminder{padding:15px 0;border-bottom:1px solid var(--line);font-size:12px}.reminder p{margin-bottom:8px}.reminder .text-button{font-size:10px;margin-right:16px}.record-state{height:100px;display:flex;justify-content:center;align-items:center;gap:12px;font-size:27px;color:var(--green)}.record-dot{width:10px;height:10px;border-radius:50%;background:#bd6a51;animation:pulse 1s infinite}.record-state.recording .icon{color:#bd6a51}#toast{position:fixed;left:calc(50% + 100px);transform:translateX(-50%) translateY(20px);bottom:25px;background:#344730;color:#fff;padding:12px 20px;border-radius:11px;z-index:100;font-size:12px;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;max-width:min(90%,600px);box-shadow:0 6px 24px #26382e1c}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}#toast.error{background:#8b4b3b}.loading{display:grid;place-items:center;min-height:400px;color:var(--muted);font-size:12px;align-content:center;gap:15px}.spinner{width:24px;height:24px;border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin .9s linear infinite}.save-indicator{font-size:10px;color:var(--muted)}.energy-options{display:flex;gap:8px;margin-bottom:20px}.energy-option{flex:1;display:flex;align-items:center;flex-direction:column;padding:12px 6px;border:1px solid var(--line);border-radius:10px;font-size:11px;gap:6px;background:white}.energy-option:has(input:checked){background:var(--sage);border-color:#9eb08c}.energy-option input{accent-color:var(--green)}.weight-big{font-size:40px!important;font-weight:500;letter-spacing:-1px}.back-button{margin-bottom:16px}.inline-controls{display:flex;align-items:center;gap:8px}.panel h2{font-size:17px}.settings-status{font-size:11px;color:var(--muted);line-height:1.8}.settings-status p{margin-bottom:8px}.content-break{margin:22px 0;border:0;border-top:1px solid var(--line)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.4}}@media(min-width:1450px){.app-shell{padding:0 70px}.hero{min-height:290px}.hero h2{font-size:33px}}@media(max-width:1100px){.sidebar{width:190px;padding:32px 17px}.brand{font-size:27px}.brand small{font-size:8px}.app-shell{margin-left:190px;padding:0 28px}.stat{padding:15px 13px;gap:10px}.stat-icon{width:30px;height:32px}.stat strong{font-size:18px}.dashboard-grid{gap:17px;grid-template-columns:minmax(0,1.4fr) minmax(225px,1fr)}.hero{padding:25px}.hero h2{font-size:26px}.meal-card{gap:13px}.meal-card .meal-art{width:85px}.quick-action{font-size:10px;padding:13px 7px}.profile-grid{grid-template-columns:1fr}#toast{left:calc(50% + 80px)}}
@media(max-width:820px){.sidebar{width:78px;padding:29px 13px}.brand>span:last-child,.nav-link span,.sidebar-bottom{display:none}.brand{justify-content:center}.brand-mark{width:36px;height:40px;font-size:30px}.sidebar nav{margin-top:45px;gap:12px}.nav-link{justify-content:center;padding:14px 9px}.nav-link svg{width:21px;height:21px}.app-shell{margin-left:78px;padding:0 26px}.topbar{height:84px;margin-bottom:28px}.dashboard-grid{grid-template-columns:1fr}.day-card{display:grid;grid-template-columns:1fr 1fr;gap:12px}.day-anchor{margin-bottom:0}.day-card .mini-note{grid-column:1/-1}.hero{grid-template-columns:1.4fr 1fr}.hero h2{font-size:24px}.hero .meal-art{max-width:210px}.stats-row{gap:10px}.stat-icon{display:none}#toast{left:calc(50% + 36px)}}
@media(max-width:580px){:root{font-size:14px}.sidebar{position:fixed;inset:auto 0 0;width:100%;height:calc(67px + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom);border:0;border-top:1px solid var(--line);background:#fafbf7f5;backdrop-filter:blur(12px);display:block}.brand{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:0}.nav-link{flex-direction:column;gap:4px;padding:11px 3px 8px;border-radius:0;font-size:9px;line-height:1.2}.nav-link span{display:block}.nav-link svg{width:20px;height:20px}.nav-link.active{background:none;color:var(--green)}.nav-link.active svg{stroke-width:2.4}.app-shell{margin-left:0;padding:0 19px 80px}.topbar{height:72px;margin-bottom:24px;font-size:10px}.top-actions{gap:11px}.avatar{width:30px;height:30px;font-size:11px}.page-heading{margin-bottom:21px;gap:8px;align-items:flex-start}.page-heading h1{font-size:26px;letter-spacing:-.8px}.page-heading p{font-size:11px;line-height:1.7}.page-heading>.pill{margin-top:4px;font-size:9px}.stats-row{gap:7px;margin-bottom:18px}.stat{padding:12px 10px;display:block;border-radius:12px}.stat strong{font-size:17px;letter-spacing:-.5px}.stat small{font-size:9px;margin-bottom:6px}.stat em{font-size:9px}.stat .text-button{font-size:9px}.stat .text-button svg{display:none}.hero{padding:22px 20px;min-height:230px;grid-template-columns:1.3fr .7fr;border-radius:18px;margin-bottom:13px;align-items:center}.hero h2{font-size:23px;letter-spacing:-.7px;position:relative;z-index:1}.hero p{font-size:10px;max-width:230px}.hero .eyebrow{font-size:8px;margin-bottom:12px;letter-spacing:.5px;white-space:nowrap}.hero .meta{font-size:10px;gap:9px;margin:11px 0 17px}.hero .button{padding:10px 13px;font-size:10px}.hero .text-button{font-size:10px;padding:0}.hero .button-row{gap:12px;flex-wrap:nowrap;white-space:nowrap}.hero .meal-art{width:170px;max-width:none;justify-self:center;margin-right:-17px;margin-left:-5px;align-self:center;opacity:.9}.hero .meal-art-wrap{min-width:0}.quick-actions{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:25px}.quick-action{font-size:9px;padding:12px 4px;gap:5px;flex-direction:column;border-radius:10px}.quick-action svg{width:18px;height:18px}.review-banner{font-size:10px;padding:10px;margin-bottom:18px;align-items:flex-start;gap:7px}.review-banner button{font-size:9px;padding-top:0}.review-banner .icon{width:14px;height:14px;margin-top:1px}.review-banner .banner-text{max-width:210px}.dashboard-grid{gap:22px}.timeline,.day-card,.diary-card{padding:17px}.section-heading h2{font-size:16px}.timeline-row{gap:10px;padding:12px 0}.timeline-title{font-size:11px}.timeline-title small{font-size:9px}.timeline-time{font-size:10px;width:32px}.timeline-dot{width:6px;height:6px}.timeline-row .icon-button{display:none}.day-card{gap:17px}.day-anchor{gap:8px}.day-anchor strong,.day-anchor .time{font-size:11px}.day-anchor small{font-size:9px}.day-anchor>svg{width:15px;height:15px}.day-card .mini-note{font-size:10px;margin-top:0}.page-heading.plan-heading{display:block}.plan-heading .button{margin-top:15px;padding:9px 12px;font-size:11px}.week-controls{justify-content:space-between;font-size:11px}.week-days{gap:5px;margin:18px 0}.day-button{padding:9px 2px;font-size:9px;border-radius:11px}.day-button strong{font-size:16px}.nutrition-summary{gap:17px;padding:14px 15px;flex-wrap:wrap;margin-bottom:18px}.nutrition-summary strong{font-size:16px}.nutrition-summary small{font-size:9px}.nutrition-summary .summary-label{flex-basis:100%;font-size:10px}.meal-card{padding:15px;gap:10px;flex-wrap:wrap;border-radius:15px}.meal-card .meal-art{width:64px}.meal-card .meal-info{min-width:170px}.meal-card h3{font-size:15px;line-height:1.4}.meal-card .eyebrow{font-size:8px}.meal-card .meta{font-size:9px;gap:10px;margin-top:6px}.meal-controls{width:100%;flex-direction:row;justify-content:flex-end;border-top:1px solid #f0f2eb;padding-top:10px;gap:15px}.meal-controls .text-button,.meal-controls .button{font-size:10px}.meal-controls .text-button{margin-right:auto}.meal-controls .button{padding:8px 10px}.chart-panel{padding:17px}.chart{height:185px}.insight{padding:16px;font-size:11px;gap:10px}.profile-grid{gap:16px}.panel{padding:19px}.panel h2{font-size:17px}.field{font-size:11px}.profile-grid .field-row{gap:10px}.field input,.field textarea,.field select{font-size:16px;padding:10px}.checks{gap:6px}.check-chip{font-size:10px;padding:7px}.chat-box{padding:17px;min-height:450px}.chat-messages{max-height:55vh}.message{font-size:12px;max-width:94%;padding:13px}.chat-compose textarea{font-size:16px}.chat-compose .button{padding:10px}.suggestions button{font-size:9px}.modal-body{padding:22px 20px}dialog{max-height:88dvh;border-radius:20px;width:calc(100% - 24px)}.modal-heading h2{font-size:21px}.modal-description{font-size:11px}.modal-body .field input,.modal-body .field textarea,.modal-body .field select{font-size:16px}.recipe-visual{height:125px}.recipe-ingredients{font-size:11px}.recipe-steps{font-size:11px}.nutrition-summary.modal-nutrition{gap:22px}.energy-options{gap:5px}.energy-option{font-size:10px;padding:10px 3px}#toast{left:50%;bottom:calc(80px + env(safe-area-inset-bottom));font-size:11px;width:max-content;max-width:90%}footer{font-size:9px;margin-bottom:15px}.entry{font-size:11px}.mode-note{font-size:9px}.button{min-height:38px}.field-row.times-grid{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Local credential setup uses the existing visual system. */
.connection-page{display:block;min-height:100vh}
.connection-shell{width:min(100% - 32px,620px);margin:48px auto;padding:0}
.connection-shell>.text-button{margin-bottom:24px}
.connection-shell h1{font-size:clamp(26px,5vw,36px);line-height:1.15;margin:12px 0 20px}
.connection-shell p{line-height:1.6}
.connection-shell .field{margin:24px 0 16px}
@media(max-width:600px){.connection-shell{margin:24px auto}.connection-page{padding-bottom:0}}
