/* Yanxu R6.1 — approved lavender/pink, private content stays network-only. */
:root{--ink:#171717;--muted:#6b6b71;--purple:#ded5ff;--pink:#f3c3df;--paper:#fafafa;--pine:#171717;color:var(--ink);font-size:16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei',sans-serif;background:var(--paper)}
*{box-sizing:border-box}body{color:var(--ink);background:var(--paper)}a{color:inherit}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #8768d8!important;outline-offset:3px}button,textarea,input,select{border-radius:14px}button svg,a svg{width:24px;height:24px;flex:none}h1{font-family:'Songti SC','STSong','Noto Serif CJK SC',serif}p{line-height:1.65}small,.muted{color:var(--muted)}
.yanxu-ui{height:var(--usable-height,100dvh);min-height:0;overflow:hidden}.yanxu-ui #app{height:100%;display:flex;flex-direction:row}.yanxu-ui .main-content{min-width:0;max-width:1080px;margin:0 auto;width:100%;background:var(--paper)}
.yanxu-ui .sidebar,#app>.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:min(86vw,340px);height:100dvh;max-height:none;flex:none;transform:translateX(-105%);padding:calc(20px + env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));background:#f4f2f8;color:var(--ink);border-right:1px solid #e5e2eb;transition:transform .18s ease;display:flex;flex-direction:column}.nav-open #app>.sidebar{transform:translateX(0)}.nav-open .sidebar-shade{display:block;position:fixed;inset:0;width:100%;height:100%;z-index:30;background:#0005;border:0;border-radius:0}.sidebar .sidebar-footer{border-color:#ddd6e7}.sidebar .btn-link,.sidebar .sidebar-footer a{color:#444;padding:9px 0}.sidebar .btn-link:hover,.sidebar .sidebar-footer a:hover{color:#111}.sidebar .btn-secondary{background:#171717;color:white;border-radius:14px}.sidebar #session-search{padding:12px;width:100%;background:white;border:1px solid #d8d3df;margin:14px 0}.sidebar .session-item{display:block;width:100%;text-align:left;background:transparent;color:#222;border:0;padding:12px;border-radius:12px}.sidebar .session-item:hover,.sidebar .session-item.active{background:var(--purple)}.sidebar .session-time{color:#64616c;font-size:.75rem}.sidebar .session-list{min-height:0;overflow:auto;flex:1}.sidebar .session-title{overflow-wrap:anywhere}
.yanxu-ui .chat-header{border:0;background:var(--paper);padding:calc(12px + env(safe-area-inset-top)) 24px 8px;display:flex;align-items:center;flex-wrap:nowrap;gap:10px;flex:none;font-weight:400}.yanxu-ui .chat-header h3{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1rem;color:var(--ink)}.round-button,.yanxu-ui #mobile-menu{display:flex;align-items:center;justify-content:center;flex:none;width:46px;height:46px;min-height:46px;background:white;border:1px solid #e4e4e6;border-radius:50%;color:#171717;text-decoration:none;margin:0;padding:11px}.yanxu-ui #mobile-menu{background:#171717;color:#fff;border-color:#171717}.is-home .home-back,.is-home .chat-actions{display:none}.is-home .chat-header h3{visibility:hidden}.chat-actions{position:relative;width:auto;flex:none}.chat-actions summary{display:flex;align-items:center;justify-content:center;width:44px;height:44px;cursor:pointer;list-style:none;border-radius:50%;font-weight:bold}.chat-actions summary::-webkit-details-marker{display:none}.action-popover{position:absolute;right:0;top:48px;z-index:15;padding:8px;background:white;box-shadow:0 8px 30px #0002;border:1px solid #eee;border-radius:16px;min-width:132px}.chat-actions .action-popover button{display:block;background:white;color:#222;width:100%;border:0;padding:12px;text-align:left;font-size:.875rem}.chat-actions .action-popover button:hover{background:#f3f0fa}
.home-panel{display:none;overflow-y:auto;min-height:0;flex:1;padding:18px 24px 22px;scrollbar-width:thin}.is-home .home-panel{display:block}.is-home #message-container{display:none}.greeting h1{font-size:clamp(2.6rem,6vw,3.6rem);margin:0 0 10px;line-height:1.2;letter-spacing:-.025em;font-weight:700}.greeting p{font-size:1rem;color:#737378;margin:0 0 28px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 12px}.section-heading h2{font-size:1.1rem;margin:0;font-weight:600}.text-button{font-size:.875rem;color:#727278;background:none;border:0;text-decoration:none;padding:5px;min-height:36px;display:inline-flex;align-items:center}.recent-sessions{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:.875rem}.recent-pill{padding:9px 14px;background:#eeedef;color:#242424;border:0;border-radius:30px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.875rem;min-height:40px}.home-cards{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;margin:24px 0}.home-card{display:flex;flex-direction:column;justify-content:space-between;gap:18px;text-align:left;color:#171717;text-decoration:none;border:0;border-radius:23px;padding:20px;min-width:0}.home-card.lavender{grid-row:span 2;background:var(--purple)}.home-card.pink{background:var(--pink)}.home-card.black{background:#171717;color:white}.card-icon{display:flex;align-items:center;justify-content:center;background:#fff;color:#171717;width:44px;height:44px;border-radius:50%;flex:none}.home-card strong{font-size:1.25rem;display:block;font-weight:600;line-height:1.4}.home-card small{display:block;font-size:.875rem;color:#655e71;margin-top:5px}.next-todos{font-size:.875rem;color:var(--muted)}.next-task{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);background:#f0eff2;padding:15px;border-radius:18px;margin-top:8px}.task-circle{width:23px;height:23px;border:1.5px solid #9d9b9f;border-radius:50%;flex:none}.next-task>span:last-child{min-width:0}.next-task strong{font-size:.9375rem;display:block;font-weight:500;overflow-wrap:anywhere}.next-task small{font-size:.8125rem;display:block;margin-top:6px}
.yanxu-ui .message-container{padding:24px;flex:1;min-height:0;overflow:auto}.yanxu-ui .message{max-width:88%;margin-bottom:22px}.yanxu-ui .message.user{margin-left:auto}.yanxu-ui .message-role{font-size:.75rem;color:#79767f;margin-bottom:7px}.yanxu-ui .message-content{border-radius:20px;padding:14px 18px;line-height:1.75;font-size:1rem;overflow-wrap:anywhere;white-space:pre-wrap}.yanxu-ui .message.user .message-content{background:var(--purple);color:var(--ink);border:0;border-bottom-right-radius:6px}.yanxu-ui .message.assistant .message-content{background:#f0eff2;border:0;color:var(--ink);border-bottom-left-radius:6px}.yanxu-ui .message.system .message-content{background:#fae3e8;color:#7a2336}.yanxu-ui #chat-notice{font-size:.8125rem;margin:0;padding:0 24px;max-height:64px;overflow:auto;color:#69646f;flex:none}.yanxu-ui #chat-notice:empty,.voice-status:empty{display:none}
.yanxu-ui .input-area{display:flex;flex-direction:row!important;align-items:flex-end;gap:8px;padding:12px 24px max(12px,env(safe-area-inset-bottom));background:var(--paper);border:0;flex:none}.voice-button{width:48px;height:52px;min-height:48px;flex:none;background:var(--purple);color:#171717;border:0;display:inline-flex;align-items:center;justify-content:center;border-radius:15px}.voice-button[aria-pressed=true]{background:#f3a9bd;box-shadow:0 0 0 3px #fbe2e9}.composer{display:flex;align-items:flex-end;gap:6px;background:#171717;border-radius:16px;padding:6px;min-width:0;flex:1}.yanxu-ui .input-area textarea{background:transparent;border:0;color:#fff;padding:8px 9px;min-height:40px;height:40px;max-height:140px;line-height:24px;resize:none;border-radius:10px;min-width:0;width:100%;flex:1;font-size:16px}.yanxu-ui .input-area textarea::placeholder{color:#aaa6af}.yanxu-ui .input-area #send-btn{background:var(--purple);color:#171717;border:0;border-radius:11px;padding:10px;display:flex;align-items:center;justify-content:center;min-width:40px;width:40px;min-height:40px;height:40px;flex:none;margin:0}.yanxu-ui .input-area #send-btn svg{width:21px;height:21px}.voice-status{color:#6c4c78;font-size:.875rem;line-height:1.5;margin:6px 24px 0}.voice-sheet{border:1px solid #e3ddea;border-radius:24px;padding:24px;width:calc(100% - 32px);max-width:430px;background:#fff;color:#171717;margin:auto}.voice-sheet::backdrop{background:#0006}.voice-sheet h2{margin:0 0 12px;font-size:1.25rem}.voice-sheet p{font-size:1rem;margin:10px 0}.voice-sheet .controls{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.voice-sheet button{border:0;padding:12px 16px;color:#171717;background:#eee;min-height:44px}.voice-sheet button:last-child{background:var(--purple)}
/* Existing secondary pages retain all controls and data flows. */
body:not(.yanxu-ui){height:auto;min-height:100dvh}body>main{max-width:1120px;padding:32px 24px max(24px,env(safe-area-inset-bottom))}body>main h1{font-size:2rem;color:var(--ink)}body>main h2{font-size:1.125rem}body>main header p,body>main .help{color:var(--muted)}body>main a{color:#514561}body>main section,.conversation,.list{border-color:#e9e5ed;border-radius:22px;background:white}body>main button{color:var(--ink);border-color:#ddd7e5;min-height:42px;font-size:.875rem}body>main button[type=submit]{background:#171717;color:white;border-color:#171717}body>main textarea,body>main select,body>main input:not([type=checkbox]){border-color:#ded9e5;font-size:1rem;color:var(--ink)}body>main label{font-size:.875rem}.notice{background:#f0ecf8;color:#655c75;border-color:#e6deef;font-size:.875rem}.conversation .message{background:#f2f0f5;color:var(--ink)}.conversation .message.user{background:var(--purple)}.task h3{font-size:1rem}.task p,.task button,#count,#pending,.controls span{font-size:.875rem}.task p{color:#6c6572}#tasks{max-height:none}.layout{align-items:start}.settings-container{border:1px solid #e9e5ed;border-radius:24px;box-shadow:none}.settings-container h1{color:var(--ink)}.settings-container button[type=submit],.login-card button{background:#171717;color:#fff;border-radius:14px}.login-container{background:var(--paper);min-height:100dvh;height:auto}.login-card{border:1px solid #e9e5ed;box-shadow:none;border-radius:24px}.login-card h1{font-family:'Songti SC',serif}
@media(min-width:800px){.home-panel{max-width:760px;width:100%;margin:auto;padding-top:24px}.home-cards{grid-template-rows:145px 145px}.greeting h1{font-size:3.3rem}.main-content>.input-area,.main-content>#chat-notice,.main-content>.voice-status{width:100%;max-width:900px;align-self:center}.yanxu-ui .message-container{padding:32px max(32px,calc((100% - 820px)/2))}.yanxu-ui .chat-header{padding-left:32px;padding-right:32px}}
@media(max-width:760px){.yanxu-ui .chat-header{padding-left:20px;padding-right:20px}.home-panel{padding:14px 20px 20px}.greeting p{margin-bottom:20px}.home-card{padding:17px;min-height:125px}.home-card strong{font-size:1.15rem}.home-card small{font-size:.875rem}.home-cards{gap:10px;margin:20px 0}.yanxu-ui .input-area{padding-left:16px;padding-right:16px}.yanxu-ui .message-container{padding:16px}.yanxu-ui .message{max-width:94%}.yanxu-ui .chat-header h3{font-size:.875rem}.round-button,.yanxu-ui #mobile-menu{width:42px;height:42px;min-height:42px;padding:10px}.chat-actions summary{width:36px}.yanxu-ui #chat-notice{padding:0 16px}.voice-status{margin-left:16px;margin-right:16px}body>main{padding:22px 16px max(22px,env(safe-area-inset-bottom))}.layout .list{order:-1}body>main .controls{gap:10px}body>main header{flex-wrap:wrap}.settings-container{margin:16px;padding:24px 18px}.home-cards .card-icon{width:40px;height:40px}}
@media(max-width:360px){.home-panel{padding-left:16px;padding-right:16px}.greeting h1{font-size:2.3rem}.greeting p{font-size:.9375rem}.home-card{padding:14px}.home-card strong{font-size:1.0625rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* R6.2: one fixed shell; only the history/home panel scrolls when iOS pans. */
html:has(body.yanxu-ui){height:100%;overflow:hidden;overscroll-behavior:none}
body.yanxu-ui{position:fixed;inset:0;min-height:0;height:100%;overflow:hidden;overscroll-behavior:none}
body.yanxu-ui #app{position:fixed;left:0;right:0;top:var(--viewport-top,0px);height:var(--usable-height,100dvh);min-height:0;overflow:hidden}
.yanxu-ui .home-panel,.yanxu-ui .message-container{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.yanxu-ui.keyboard-open .input-area{padding-bottom:8px}
.yanxu-ui .voice-status{max-height:64px;overflow:auto;flex-shrink:0}
.yanxu-ui .input-area{max-height:180px}
#todo-form .controls #voice-button{margin-left:auto;order:2}
