/* Paper, ink and jade. All surfaces stay readable without remote fonts. */
:root{font-family:Arial,Helvetica,sans-serif;color:#202923;background:#e9e5df;--green:#34875c;--muted:#787c77}
body{background:radial-gradient(ellipse at 10% 20%,#fffaf3 0,transparent 65%),#e9e5df}
.shell{max-width:580px;padding:0 22px 105px;min-height:100vh;position:relative;background:linear-gradient(130deg,#ffffff85,#f3eee6aa),url('/landscape.svg') center top/100% auto repeat-y;box-shadow:0 0 85px #564d3b15}
header{height:65px;border-bottom:1px solid #78756520}.brand{font-size:19px;letter-spacing:-.6px}.brand-note{display:none}.mark{background:#2c7350;width:28px;height:28px;border-radius:50%;font-size:21px;font-family:Georgia,serif}.quiet{color:#72766f;font-size:12px}
.heading{margin:28px 0 23px;align-items:center;gap:12px}.eyebrow{font-size:9px;letter-spacing:1.5px;color:#8a897e}.heading h1{font-family:Georgia,'Times New Roman',serif;font-size:43px;font-weight:400;letter-spacing:-1.9px;line-height:1.1;margin-top:10px}.subtitle{font-size:14px;color:#7a7c77;margin:9px 0 0;line-height:1.4}.date{background:#e8ddcba8;min-width:54px;max-width:65px;line-height:1.6;padding:10px;text-align:center;color:#696655;border-radius:2px;font-size:11px;transform:rotate(2deg)}
.layout{display:block}.layout>aside{display:none}.primary{width:100%}.summary,.stat-card,.memory-panel,.companion,.small-card{background:#fffdfae6;border:1px solid #ffffffbb;box-shadow:0 6px 22px #756c5810;border-radius:23px}.summary{padding:20px}.calorie-top{font-size:12px}.pill{background:#efeee8;color:#78796f;border-radius:7px;font-size:10px}.calories{font-size:37px;letter-spacing:-1px;margin:10px 0 14px}.calories small{font-size:23px;color:#424841}.calories small span{font-size:14px}progress{height:13px;background:#eae9e5}progress::-webkit-progress-bar{background:#eae9e5}progress::-webkit-progress-value{background:linear-gradient(90deg,#71b18a,#47956a)}progress::-moz-progress-bar{background:#47956a}.calorie-bottom{font-size:10px;color:#7a7c77;line-height:1.5;margin-top:9px}.macros{border:0;padding:0;margin-top:20px;gap:16px}.macros>div{border:0;padding:0;border-bottom:5px solid #6ca9d2;padding-bottom:9px}.macros>div:nth-child(2){border-color:#e8ba51}.macros>div:nth-child(3){border-color:#df8191}.macros span{font-size:11px;color:#70786d}.macros strong{font-size:19px;margin-top:6px}.dot{display:none}
.conversation{border:0;background:transparent;box-shadow:none;padding:0;margin-top:27px}.section-label{font-size:10px;letter-spacing:1.3px;color:#8b8c82}.section-label span{font-size:10px;color:#8b8c82}.message{font-size:14px;margin-top:15px;line-height:1.6;background:#fffdfad9;border-radius:20px;padding:14px 17px;box-shadow:0 5px 14px #51442a08;max-width:94%}.speaker{font-size:10px;color:#39815a;letter-spacing:.5px}.message.user{margin-left:auto;background:#e0eadedb;color:#3f5543;padding:12px 17px}.chips{gap:7px;margin:15px 0}.chips button{border:1px solid #d8ddcf;background:#f8f7f0c9;color:#5f705b;border-radius:22px;font-size:11px;padding:6px 12px;min-height:34px}
#chat{background:#fffdf9f5;border:1px solid #fff;border-radius:25px;padding:13px 15px;box-shadow:0 5px 25px #6c5c3920;margin-top:18px}textarea{font-size:15px;min-height:42px;color:#28372b}textarea::placeholder{color:#93958d}.voice{background:linear-gradient(135deg,#7ab48c,#318456);color:white;border-radius:50px;font-size:18px;min-width:44px;height:44px}.voice span{font-size:12px}.send,.primary-button,.chips .primary-button{background:#337b54;color:white;border-radius:22px}.send{height:44px;width:44px}.local-note{color:#7c8076;font-size:10px;margin:10px 0 25px}.entries{padding:0;margin:25px 0}.food-row{border:1px solid #ffffffa8;background:#fffdfad9;border-radius:20px;padding:16px 14px;margin-top:12px;gap:12px;box-shadow:0 5px 18px #685a4010}.food-icon{width:48px;height:55px;background:#e3e6d8;color:#7c9367;border-radius:14px;font-size:30px}.food-main h3{font-size:14px;line-height:1.45;margin:6px 0}.food-main .fine{font-size:10px;color:#7c8277}.food-right strong{font-size:16px}.food-right small{font-size:10px}.food-right .text-button{font-size:10px;min-height:28px;color:#668268}summary{font-size:11px;color:#707c6b}.fine{color:#7b8075}.text-button{color:#477456}.draft{background:#e9efe3;border:1px solid #c8d6be}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(580px,100%);background:#fffdf7f5;backdrop-filter:blur(16px);border-top:1px solid #dbdccf;display:grid;grid-template-columns:repeat(4,1fr);z-index:10;padding:9px 8px max(12px,env(safe-area-inset-bottom))}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10px;color:#84877c;min-height:51px;padding:4px}.bottom-nav svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}.bottom-nav [aria-current]{color:#246744;font-weight:700}.bottom-nav [aria-current] svg{stroke-width:2.5}
.stat-card{padding:22px;margin-bottom:14px}.stat-card h2,.memory-panel h2{font-size:18px;font-weight:500;margin:0 0 9px}.stat-card p{line-height:1.6}.stat-card .weight{font-size:34px;color:#293d2e}.week-chart{display:flex;gap:12px;height:185px;margin:23px 0 12px}.chart-column{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;font-size:11px;min-width:0}.bar-track{height:135px;width:100%;display:flex;align-items:end;background:repeating-linear-gradient(to top,#828a7915 0px,#828a7915 1px,transparent 1px,transparent 44px);border-bottom:1px solid #adb5a7}.bar{width:75%;margin:auto auto 0;background:#85b293;border-radius:4px 4px 0 0}.bar.current{background:#2d7750}.chart-column small{color:#85877c}.week-dots{display:flex;gap:12px;margin:18px 0}.week-dots span{height:19px;width:19px;border-radius:50%;background:#e1e1d8}.week-dots .filled{background:#62a27a}.companion{padding:25px;background:#fffdfacc}.companion .avatar{max-width:260px}.companion h2{font-family:Georgia,serif;font-size:30px;font-weight:400}.forming-icon{color:#348158}.checks span{color:#4e8b5d}.profile-facts{background:#eef0e5}.memory-panel{padding:22px}.memory-item{border-color:#e1e1d6}.view-memory .layout>aside{display:block;margin-top:20px}.view-memory aside .companion{display:none}.view-memory aside .small-card{margin:0}.privacy{font-size:11px}.start-over{color:#36774c;margin:16px 0}.notice{font-size:13px}.brand:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline-color:#328353}dialog{background:#fffdf7;color:#29392b;border-color:#e0e1d5}input{border-color:#d1d9cb;color:#29392b}.weight{color:#29392b}
@media(max-width:400px){.shell{padding-left:15px;padding-right:15px}.heading h1{font-size:35px}.subtitle{font-size:12px}.date{min-width:45px;font-size:10px;padding:7px}.summary{padding:17px}.calories{font-size:32px}.calories small{font-size:20px}.food-icon{width:37px;height:46px}.food-row{gap:9px;padding:13px 10px}.food-main h3{font-size:12px}.voice span{display:none}.week-chart{gap:8px}}
.macros>div:first-child{border-bottom:5px solid #6ca9d2;padding-bottom:9px} [hidden]{display:none!important}
/* Chat occupies the available screen; only the conversation scrolls. */
.view-day.shell{height:100dvh;min-height:0;padding:0 16px;display:flex;flex-direction:column;overflow:hidden}
.view-day>header{display:none}.view-day main{display:flex;flex:1;min-height:0;flex-direction:column}.view-day .heading{flex:none;margin:0;padding:16px 3px 12px;min-height:64px}.view-day .heading h1{font-size:28px;letter-spacing:-.8px;margin:0}.view-day .heading .eyebrow,.view-day .subtitle{display:none}.view-day .date{transform:none;background:none;max-width:none;padding:0;font-size:12px;white-space:nowrap}.view-day .layout,.view-day .primary{display:flex;flex:1;min-height:0;flex-direction:column}.view-day .bottom-nav{position:static;transform:none;width:auto;flex:none;margin:0 -16px;padding:7px 8px max(9px,env(safe-area-inset-bottom))}.view-day .bottom-nav button{min-height:45px}.view-day .bottom-nav svg{width:21px;height:21px}.view-day .conversation{display:flex;flex-direction:column;flex:1;min-height:0;margin:0;padding:0}.chat-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 1px 18px;scrollbar-width:thin}.chat-scroll .message{margin-top:10px;line-height:1.6;font-size:14px}.view-day #chat{flex:none;margin:0;padding:10px 13px;border-radius:22px;box-shadow:0 3px 18px #6c5c3912}.view-day textarea{resize:none;min-height:31px;max-height:90px;line-height:1.5;padding:4px 0}.view-day .composer-bottom{margin-top:4px}.view-day .voice,.view-day .send{height:38px;min-height:38px;width:38px;min-width:38px}.view-day .voice span{display:none}.view-day .local-note{margin:6px 0 8px;font-size:9px}.view-day #voice-status:empty{display:none}.view-day #voice-status{margin:6px 0 0;font-size:11px}.nutrition-widget{flex:none;touch-action:pan-x}.nutrition-widget .summary{padding:12px 16px 11px;border-radius:19px}.nutrition-widget .calorie-top{display:none}.nutrition-widget .calories{font-size:26px;margin:0 0 8px;letter-spacing:-.7px}.nutrition-widget .calories small{font-size:17px}.nutrition-widget progress{height:7px}.nutrition-widget .calorie-bottom{font-size:9px;margin-top:6px;gap:4px}.nutrition-widget .macros{margin-top:10px;gap:15px}.nutrition-widget .macros>div,.nutrition-widget .macros>div:first-child{border-bottom-width:3px;padding-bottom:5px;display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}.nutrition-widget .macros span{font-size:10px}.nutrition-widget .macros strong{font-size:13px;margin:0}.nutrition-widget .macros small{font-size:10px}.widget-handle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:30px;color:#747e70;font-size:10px;padding:7px;touch-action:none;user-select:none}.widget-handle i{width:25px;height:3px;background:#b8c3b0;border-radius:3px}.nutrition-widget.collapsed .widget-handle{background:#ffffff85;border-radius:12px;margin-bottom:3px}.chat-scroll .draft{margin:12px 0 0}.view-day .notice{flex:none;margin:3px 0;padding:8px;font-size:11px}
/* Compact chat chrome: keep type readable while reducing vertical spacing. */
.view-day .heading{min-height:40px;padding:8px 3px}
.view-day .heading h1{font-family:Arial,Helvetica,sans-serif;font-size:18px;font-weight:600;letter-spacing:0;line-height:24px}
.view-day .date{font-size:11px;line-height:20px}
.nutrition-widget .summary{padding:4px 12px;border-radius:15px}
.nutrition-widget .calories{font-size:22px;line-height:24px;letter-spacing:-.4px;margin:0 0 4px}
.nutrition-widget .calories small{font-size:14px;line-height:24px}
.nutrition-widget .calories small span{font-size:11px}
.nutrition-widget progress{height:5px}
.nutrition-widget .calorie-bottom{line-height:11px;margin-top:3px;font-size:9px}
.nutrition-widget .macros{margin-top:5px;gap:12px}
.nutrition-widget .macros>div,.nutrition-widget .macros>div:first-child{line-height:14px;border-bottom-width:2px;padding-bottom:3px;gap:4px}
.nutrition-widget .macros strong{font-size:12px;line-height:14px}
.widget-handle{min-height:22px;padding:4px;line-height:14px}
.nutrition-widget .calories{margin-bottom:2px}
.nutrition-widget .macros{margin-top:3px}
.widget-handle{min-height:20px;padding:3px}
/* The collapsed total is the control itself; no separate hide label. */
.nutrition-widget.collapsed .widget-handle{min-height:34px;padding:7px 10px;margin:0;background:#fffdfad9;color:#4f6554;font-size:11px;line-height:18px;justify-content:space-between;border:1px solid #fff;border-radius:13px}
.nutrition-widget.collapsed .widget-handle i{order:2;width:7px;height:7px;flex:none;border-right:1.5px solid #81967e;border-bottom:1.5px solid #81967e;background:none;border-radius:0;transform:rotate(45deg);margin:0 3px 4px 7px}
.nutrition-widget:not(.collapsed) .widget-handle{min-height:16px;padding:5px}.nutrition-widget:not(.collapsed) .widget-handle span{display:none}
/* Give the expanded details more room; the compact total stays unchanged. */
.nutrition-widget:not(.collapsed) .summary{padding:9px 14px;border-radius:17px}
.nutrition-widget:not(.collapsed) .calories{font-size:25px;line-height:28px;margin-bottom:4px}
.nutrition-widget:not(.collapsed) .calories small{font-size:16px}
.nutrition-widget:not(.collapsed) .calorie-bottom{font-size:10px;line-height:13px;margin-top:4px}
.nutrition-widget:not(.collapsed) .macros{margin-top:6px}
.nutrition-widget:not(.collapsed) .macros strong{font-size:14px;line-height:17px}
/* Central voice entry point, balanced independently of side controls. */
.view-day .composer-bottom{display:grid;grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr);gap:8px;align-items:center;margin-top:6px}
.view-day .composer-bottom>div:first-child{display:flex;flex-wrap:wrap;gap:0;align-items:center}
.view-day .composer-bottom .quiet{font-size:11px;padding:0 4px;min-height:32px}
.view-day .composer-bottom>.voice{width:52px;height:52px;min-width:52px;min-height:52px;border-radius:50%;display:grid;place-items:center;padding:0;box-shadow:0 3px 10px #32845326;border:2px solid #ffffffa0}
.voice svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.view-day .composer-bottom .send-group{justify-self:end}
.view-day .voice.listening{opacity:1;background:#236d46;box-shadow:0 0 0 5px #76b68d35}
/* Voice is the central navigation action, not a fifth destination. */
.bottom-nav{grid-template-columns:1fr 1fr 64px 1fr 1fr;align-items:center}
.bottom-nav .voice{justify-self:center;align-self:center;width:52px;height:52px;min-height:52px;padding:0;display:grid;place-items:center;background:linear-gradient(140deg,#76b88d,#28794e);color:white;border:2px solid #fffdf7;border-radius:50%;box-shadow:0 3px 12px #2c75452a}
.bottom-nav .voice svg,.view-day .bottom-nav .voice svg{width:25px;height:25px;stroke-width:1.8}
.bottom-nav .voice.listening{opacity:1;background:#236d46;box-shadow:0 0 0 4px #76b68d35}
.view-day .composer-bottom{display:flex;justify-content:space-between;gap:8px}
.view-day .composer-bottom .send-group{margin-left:auto}
/* A living jade orb: quiet when idle, brighter only during recognition. */
.bottom-nav .voice{position:relative;isolation:isolate;overflow:visible;border:1px solid #e8ffdfb3;background:radial-gradient(circle at 32% 22%,#ddffdcb3 0,transparent 38%),radial-gradient(circle at 75% 85%,#62c9ba 0,transparent 55%),linear-gradient(145deg,#71b28d,#266847 70%);box-shadow:inset 0 1px 4px #fff9,inset 0 -4px 10px #134c3a66,0 4px 14px #36745538;transition:transform .2s ease,box-shadow .25s ease;transform:translateY(-3px)}
.bottom-nav .voice:hover{transform:translateY(-5px);box-shadow:inset 0 1px 4px #fff9,0 5px 20px #46967266}
.bottom-nav .voice:active{transform:translateY(-2px) scale(.94)}
.bottom-nav .voice svg{z-index:2;filter:drop-shadow(0 1px 3px #18594080);pointer-events:none}
.bottom-nav .voice .ai-aura{display:block;position:absolute;inset:-9px;border-radius:50%;background:conic-gradient(from 30deg,#7fbf7c70,#a8b9d840,#f1d79d65,#6dbca975,#7fbf7c70);filter:blur(7px);z-index:-1;pointer-events:none;animation:ai-breathe 4.8s ease-in-out infinite}
.bottom-nav .voice .ai-orbit{display:block;position:absolute;inset:-4px;border-radius:50%;border:1px solid #9bc2a33d;border-top-color:#f2e2b4;border-right-color:#92d5bd;pointer-events:none;animation:ai-orbit 10s linear infinite}
.bottom-nav .voice .ai-orbit:after{content:'';position:absolute;top:5px;right:6px;width:4px;height:4px;background:#fff6db;border-radius:50%;box-shadow:0 0 5px #a8d3aa}
.bottom-nav .voice .ai-sparks{display:block;position:absolute;right:-6px;top:-5px;font-size:13px;color:#b39b60;text-shadow:0 0 7px #fff6d8;pointer-events:none;animation:ai-spark 3.8s ease-in-out infinite}
.bottom-nav .voice .ai-sparks:after{content:'✧';position:absolute;right:48px;top:39px;font-size:10px;color:#65a88a;animation:ai-spark 4.6s ease-in-out infinite reverse}
.bottom-nav .voice.listening{background:radial-gradient(circle at 30% 20%,#b8ffe3,#368f72 55%,#165d48);box-shadow:0 0 0 3px #9ed9b94d,inset 0 1px 5px #fff8,0 0 20px #70c3a26b}
.bottom-nav .voice.listening .ai-aura{animation-duration:1.3s;filter:blur(6px)}
.bottom-nav .voice.listening .ai-orbit{animation-duration:2.4s;border-top-color:#fff6cb}
.bottom-nav .voice.listening .ai-sparks{animation-duration:1.1s}
@keyframes ai-breathe{0%,100%{opacity:.45;transform:scale(.91)}50%{opacity:.85;transform:scale(1.09)}}
@keyframes ai-orbit{to{transform:rotate(360deg)}}
@keyframes ai-spark{0%,100%{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}
@media(prefers-reduced-motion:reduce){.bottom-nav .voice,.bottom-nav .voice *,.bottom-nav .voice *:after{animation:none!important;transition:none!important}.bottom-nav .voice .ai-aura{opacity:.55}}
/* Keep the AI sphere and soft halo, without orbit or spark ornaments. */
.bottom-nav .voice .ai-orbit,.bottom-nav .voice .ai-sparks{display:none}
.bottom-nav .voice .samurai-portrait{display:block;width:46px;height:46px;border-radius:50%;background:#f4eee1 url('/avatar.png') 50% 7% / 240% auto no-repeat;box-shadow:inset 0 0 0 1px #fff8;pointer-events:none;z-index:2}
/* Universal samurai symbol, independent of the user's avatar. */
.bottom-nav .voice .samurai-portrait{width:32px;height:32px;border-radius:0;background:none;box-shadow:none;position:relative}
.bottom-nav .voice .samurai-portrait:before{content:'';display:block;width:100%;height:100%;background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23fffdf2' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 6c-2-2-1-4 1-4h2c2 0 3 2 1 4M9 11c0-7 14-7 14 0M8 12c-3 1-2 5 0 5 0 5 4 8 8 8s8-3 8-8c2 0 3-4 0-5M8 12c3 0 5-2 8-4 2 2 5 4 8 4'/%3E%3Cpath d='m11 15 2-.5m6 0 2 .5M14 20q2 1.5 4 0M10 24c-5 1-7 3-7 6h26c0-3-2-5-7-6M12 25l4 5 4-5'/%3E%3C/svg%3E") center/contain no-repeat}
.answer-hints{display:flex;flex:none;gap:6px;overflow-x:auto;padding:5px 0 8px;scrollbar-width:none}
.answer-hints button{white-space:nowrap;min-height:30px;padding:5px 11px;border:1px solid #dce3d5;border-radius:18px;background:#fffdf8bd;color:#60755c;font-size:11px}
.activity-profile{margin-top:22px;padding-top:18px;border-top:1px solid #e1e1d6}.activity-profile h2{font-size:17px}
.burn-strip{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #e2e5d9;margin-top:7px;padding-top:6px;color:#8c653a;font-size:11px;line-height:16px}.burn-strip strong{white-space:nowrap;font-weight:600}.burn-card .bar{background:#c69c60}.burn-entry{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #e7e4d9}.burn-entry>div{flex:1}.burn-entry strong,.burn-entry span{display:block}.burn-entry strong{font-size:13px}
/* Consistent fine outline icons, inspired by the supplied reference. */
.composer-bottom .quiet svg,.chat-mic svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.view-day .composer-bottom .quiet,.chat-mic{display:grid;place-items:center;min-width:38px;min-height:38px;border-radius:50%;padding:7px;background:#efede8;color:#81878b}
.chat-mic{background:#52986b;color:#fff}.chat-mic.listening{box-shadow:0 0 0 4px #67a98033}.bottom-nav button{color:#7b838b}.bottom-nav svg,.bottom-nav [aria-current] svg{stroke-width:1.7}.bottom-nav [aria-current]{color:#2f7854}
.bottom-nav .voice{transform:translateY(-2px);background:linear-gradient(145deg,#73ad86,#3b8b60);box-shadow:0 3px 10px #397e5625;border:2px solid #faf8f3}
.voice-screen{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:40px 24px max(24px,env(safe-area-inset-bottom));border:0;border-radius:0;background:radial-gradient(ellipse at 50% 42%,#e1eddf,#f7f4ed 65%);display:flex;flex-direction:column;align-items:center;overflow:auto;color:#284f3b}
.voice-screen:not([open]){display:none}.voice-screen::backdrop{background:#f7f4ed}.voice-close{position:absolute;top:15px;right:18px;font-size:29px;width:44px;height:44px;color:#6e7b71;border-radius:50%;background:#ffffff80}
.voice-intro{text-align:center;margin-top:4vh}.voice-intro>span{font-size:10px;letter-spacing:3px;color:#8b9988}.voice-intro h2{font:400 36px Georgia,serif;margin:15px 0 8px}.voice-intro p{font-size:13px;color:#7d897b}
.sphere-stage{position:relative;display:grid;place-items:center;flex:1;min-height:220px;width:min(75vw,360px);isolation:isolate}
.ai-sphere{width:min(54vw,230px);aspect-ratio:1;border-radius:50%;position:relative;overflow:hidden;background:radial-gradient(circle at 27% 20%,#f4ffe3c9,transparent 36%),radial-gradient(circle at 80% 82%,#c2caee99,transparent 48%),linear-gradient(140deg,#b9e1c6,#449c85 55%,#27765d);box-shadow:inset 0 2px 10px #ffffffa0,inset 0 -15px 35px #165d6345,0 22px 65px #3a8b7140;animation:sphere-float 7s ease-in-out infinite}
.ai-sphere i,.ai-sphere b{position:absolute;inset:-35%;border-radius:42%;background:conic-gradient(from 45deg,transparent,#fffbd580,transparent,#95e8d370,transparent);filter:blur(18px);animation:sphere-flow 16s linear infinite}.ai-sphere b{inset:12%;background:linear-gradient(30deg,#ffffff8a,transparent 55%,#688bdf55);animation-direction:reverse;animation-duration:11s}
.sphere-halo{position:absolute;width:82%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#9dcdb66b,transparent 70%);filter:blur(16px);animation:sphere-breathe 6s ease-in-out infinite;z-index:-1}
.sphere-status{font-size:17px;margin:8px 0 10px;text-align:center;max-width:430px;line-height:1.5}.voice-transcript{font-size:15px;line-height:1.6;color:#6b7b6c;text-align:center;max-width:480px;max-height:110px;overflow:auto;margin:0 0 18px;white-space:pre-wrap}.voice-transcript:empty{display:none}.sphere-actions{display:flex;align-items:center;gap:20px;margin:12px 0 18px}.sphere-start{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#367e58;color:white;box-shadow:0 4px 18px #438c6033}.sphere-start svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sphere-start.recording{background:#4d715c;box-shadow:0 0 0 6px #65b88725}.sphere-done{font-size:13px;padding:12px 18px;border:1px solid #cdd9cc;border-radius:25px;color:#52745b}.sphere-note{font-size:11px;line-height:1.6;color:#869180;text-align:center;max-width:400px;margin:0}
.is-listening .ai-sphere{animation-duration:2.2s}.is-listening .ai-sphere i{animation-duration:4s}.is-listening .sphere-halo{animation-duration:1.4s}.voice-error .sphere-status{color:#926840}.voice-error .ai-sphere{animation-play-state:paused}
@keyframes sphere-flow{to{transform:rotate(360deg)}}@keyframes sphere-float{0%,100%{transform:translateY(4px) scale(.98)}50%{transform:translateY(-6px) scale(1.02)}}@keyframes sphere-breathe{0%,100%{opacity:.5;transform:scale(.9)}50%{opacity:1;transform:scale(1.18)}}
@media(prefers-reduced-motion:reduce){.voice-screen *{animation:none!important;transition:none!important}}
@media(max-height:600px){.voice-screen{padding-top:22px}.voice-intro{margin-top:0}.voice-intro h2{font-size:26px;margin:8px 0}.sphere-stage{min-height:150px}.ai-sphere{width:130px}.sphere-status{font-size:14px}.sphere-actions{margin:5px 0 10px}.sphere-start{width:48px;height:48px}}
/* Reference-style pictograms: solid bars, a kabuto, and a clean profile outline. */
.bottom-nav svg,.view-day .bottom-nav svg{width:25px;height:25px;stroke-width:1.8}
.bottom-nav .solid-icon{fill:currentColor;stroke:none}
.bottom-nav [data-view="day"][aria-current] svg{fill:currentColor;stroke-width:1.2}
.bottom-nav [data-view="companion"] svg{stroke-width:1.65}
.composer-bottom .quiet svg,.chat-mic svg{stroke-width:1.7}
/* The live interface remains behind translucent glass. */
.voice-screen{background:radial-gradient(ellipse at 50% 45%,#e4ede329,transparent 65%);padding:50px 24px 32px;box-shadow:none;backdrop-filter:none}
.voice-screen::backdrop{background:#f1f0e9a6;backdrop-filter:blur(14px) saturate(.75);-webkit-backdrop-filter:blur(14px) saturate(.75)}
.voice-screen .sphere-stage{flex:1;width:min(80vw,420px);min-height:220px}
.voice-screen .ai-sphere{width:min(58vw,250px)}
.voice-screen .sphere-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0;padding:0}
.voice-screen.voice-error .sphere-status{position:static;width:auto;height:auto;clip-path:none;overflow:visible;font-size:13px;max-width:330px;margin:0 0 12px;color:#85613c}
.voice-screen .voice-transcript{max-height:120px;padding:0 12px;color:#42624b}
.voice-screen .sphere-actions{gap:26px;margin:16px 0 25px}
.voice-screen .sphere-done{display:grid;place-items:center;width:56px;height:56px;padding:14px;border-radius:50%;background:#ffffffa6;border:1px solid #fff9}
.sphere-done svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sphere-start.recording svg{display:none}.sphere-start.recording:before{content:'';width:18px;height:18px;background:currentColor;border-radius:4px}
@media(max-height:600px){.voice-screen .sphere-stage{min-height:140px}.voice-screen .ai-sphere{width:150px}.voice-screen .sphere-actions{margin:8px 0}}
/* One navigation geometry across every category; only main content scrolls. */
.shell,.view-day.shell{height:100dvh;min-height:0;padding:0 16px;display:flex;flex-direction:column;overflow:hidden}
.shell>header{flex:none}.shell>main{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.view-day>main{overflow:hidden}
.shell .bottom-nav{position:static;left:auto;bottom:auto;transform:none;width:auto;max-width:none;flex:none;align-self:stretch;margin:0 -16px;padding:7px 8px max(9px,env(safe-area-inset-bottom));grid-template-columns:1fr 1fr 64px 1fr 1fr;min-height:69px}
.shell .bottom-nav>button{height:52px;min-height:52px;padding:4px;gap:6px;font-size:10px;line-height:12px;justify-content:center}
.shell .bottom-nav>button svg{width:25px;height:25px;flex:none}
.shell .bottom-nav>.voice{height:52px;min-height:52px;width:52px;min-width:52px;padding:0}
.shell:not(.view-day)>main{padding-bottom:24px}
