:root{color-scheme:dark;--bg:#101210;--panel:#191d19;--line:#303830;--text:#eef2e9;--muted:#aab4a6;--accent:#b7e39b;--type-display:1.65rem;--type-section:1.12rem;--type-subheading:1rem;--type-body:.9rem;--type-control:.8rem;--type-caption:.72rem;--leading-tight:1.2;--leading-body:1.55;--leading-long:1.72}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#202820,var(--bg) 42%);color:var(--text);font:16px system-ui,sans-serif}header,main{max-width:1100px;margin:auto}header{display:flex;justify-content:space-between;align-items:center;padding:28px 20px}h1{margin:.2rem 0;font-size:clamp(1.6rem,4vw,2.6rem)}small,.muted{color:var(--muted)}#health{border:1px solid var(--line);border-radius:99px;padding:8px 12px}.header-actions{display:flex;gap:8px;align-items:center}.quiet{background:transparent;color:var(--muted);border:1px solid var(--line)}.hero{margin:0 20px 20px;padding:24px;border:1px solid var(--line);border-radius:20px;background:#151a15cc;display:flex;justify-content:space-between;align-items:center}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:0 20px 40px}article{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:20px}.wide{grid-column:1/-1}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.section-heading h2{margin-bottom:4px}.stage-badge{white-space:nowrap;border:1px solid #54704d;border-radius:99px;padding:7px 10px;color:#c7ecb0;background:#1d291b}.provider-notice{margin:10px 0;color:#d5c898;font-size:.9rem}.conversation-create{grid-template-columns:1fr 1fr 2fr 1.4fr auto}.chat-layout{display:grid;grid-template-columns:240px 1fr;gap:14px;min-height:440px}.conversation-list{display:grid;gap:8px}.conversation-entry{display:grid;text-align:left;background:#111511;color:var(--text);border:1px solid var(--line);font-weight:400}.conversation-entry strong{display:block}.conversation-entry span{color:var(--muted);font-size:.8rem;margin-top:4px}.conversation-entry.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.chat-room{min-width:0;border:1px solid var(--line);border-radius:15px;padding:14px;background:#121612}.chat-room-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.chat-room h3{margin:2px 0 12px}.chat-room-heading select{padding:7px 9px;font-size:.82rem}.message-stream{height:280px;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:8px}.message{max-width:86%;border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#1b211b}.message.user{align-self:flex-end;background:#263322}.message.ai{align-self:flex-start}.message p{margin:5px 0;white-space:pre-wrap;overflow-wrap:anywhere}.message span{color:var(--muted);font-size:.72rem}.chat-composer{grid-template-columns:1fr auto;align-items:end}.chat-composer textarea{min-height:78px}.chat-composer button{height:44px}.chat-status-row{display:flex;gap:10px;align-items:center;justify-content:space-between}.chat-status-row .quiet{padding:7px 10px;font-size:.8rem}.journal{background:linear-gradient(100deg,#ded0a9,#f0e3bd 48%,#d8c79d);color:#2c2416;border-color:#75694d}.journal .muted,.journal .meta{color:#6e624a}.journal input,.journal textarea,.journal select{background:#f6edcf;color:#2c2416;border-color:#9f9068}.journal .item{background:#eee1bd;border-color:#aa9a72}.journal .quiet{color:#554b36;border-color:#8d7e5c}form{display:grid;gap:10px;margin:14px 0}.search-row{grid-template-columns:1fr auto auto}input,textarea,select,button{font:inherit;border-radius:11px;border:1px solid var(--line);padding:11px;background:#101410;color:var(--text)}textarea{min-height:100px;resize:vertical}button{background:var(--accent);color:#172012;border:0;font-weight:700;cursor:pointer}button:disabled{opacity:.55;cursor:wait}.row{display:flex;gap:10px;flex-wrap:wrap}.row label{flex:1;min-width:130px;color:var(--muted)}.row input{width:100%;margin-top:5px}.list{display:grid;gap:8px;margin-top:12px}.item{padding:12px;border-radius:12px;background:#111511;border:1px solid #252d25}.item strong{display:block}.item-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.item-actions button,.item-actions a{padding:7px 10px;font-size:.85rem}.download{display:inline-block;border-radius:9px;background:var(--accent);color:#172012;text-decoration:none;font-weight:700}.meta{font-size:.8rem;color:var(--muted);margin-top:5px}.auth-screen{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px;background:#0b0e0beF}.auth-screen.hidden{display:none}.auth-card{width:min(430px,100%);padding:28px;border:1px solid var(--line);border-radius:22px;background:var(--panel);box-shadow:0 30px 80px #0008}.error{min-height:1.4em;color:#ff9f98}@media(max-width:700px){.grid{grid-template-columns:1fr}.wide{grid-column:auto}.hero,.section-heading{align-items:flex-start;gap:15px;flex-direction:column}header{padding-top:18px}.header-actions{align-items:flex-end;flex-direction:column}.search-row{grid-template-columns:1fr 1fr}.search-row input{grid-column:1/-1}.conversation-create{grid-template-columns:1fr}.chat-layout{grid-template-columns:1fr}.conversation-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.message{max-width:94%}.chat-composer{grid-template-columns:1fr}.chat-status-row,.chat-room-heading{align-items:flex-start;flex-direction:column}}

.field-label{display:grid;gap:5px;color:var(--muted);font-size:.78rem}.field-label input,.field-label select{width:100%;color:var(--text);font-size:1rem}.conversation-create>button{align-self:end}.current-privacy{min-width:170px}.chat-actions{display:flex;gap:8px;align-items:center}.chat-status-row .stop{padding:7px 10px;font-size:.8rem;background:#a95c54;color:#fff}.message.partial{border-style:dashed}.message.streaming p::after{content:"▋";color:var(--accent);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}
.reflection-entry{border-left:3px solid var(--accent)}.reflection-entry.defer{border-left-color:#d7bd70}.reflection-entry.invite_share{border-left-color:#c999e8}.reflection-entry.error{border-left-color:#e57b72}

/* App workspace: independent chat, navigation, and library scroll regions. */
html,body{min-height:100%}
body{display:block;overflow-x:hidden;overflow-y:auto}
header,main{width:100%;max-width:1560px}
header{padding-top:16px;padding-bottom:14px}
main{display:block;overflow:visible}
.hero{flex:0 0 auto;margin-bottom:12px;padding:10px 16px}
.workspace-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(300px,.72fr);height:calc(100dvh - 104px);min-height:620px;gap:12px;padding:0 12px 16px;overflow:hidden}
.workspace-column{min-width:0;min-height:0}
.ai-workspace,.chat-panel{height:100%;min-height:0}
.chat-panel{display:flex;min-width:0;flex-direction:column;overflow:hidden;padding:0;font-size:.92rem}
.chat-panel-heading{position:relative;z-index:3;flex:0 0 auto;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(25,28,21,.98),rgba(20,22,17,.96))}
.chat-panel-heading h2{min-width:0;margin:0;overflow:hidden;color:#eee59a;font-size:.95rem;text-overflow:ellipsis;white-space:nowrap}
.chat-workspace-label{display:flex;min-width:150px;flex:1;align-items:center;gap:9px}
.chat-title-copy{display:flex;min-width:0;align-items:baseline;gap:8px}
.chat-current-companion{min-width:0;overflow:hidden;color:var(--muted);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}
.chat-toolbar-actions{display:flex;min-width:0;flex:0 1 auto;align-items:center;justify-content:flex-end;gap:6px}
.chat-toolbar-actions .stage-badge{max-width:220px;overflow:hidden;padding:6px 9px;font-size:.72rem;text-overflow:ellipsis}
.chat-toolbar-actions button{padding:6px 9px;font-size:.74rem}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.compact-select{min-width:0}
.compact-select select{width:auto;max-width:116px;padding:6px 25px 6px 8px;border-radius:8px;font-size:.74rem}
.provider-disclosure,.toolbar-disclosure{position:relative;flex:0 0 auto;margin:0;padding:0;color:var(--muted);font-size:.74rem}
.provider-disclosure>summary,.toolbar-disclosure>summary{width:max-content;cursor:pointer;padding:6px 9px;border:1px solid var(--line);border-radius:8px;color:#d5c898;list-style:none}
.provider-disclosure>summary::-webkit-details-marker,.toolbar-disclosure>summary::-webkit-details-marker{display:none}
.provider-disclosure .provider-notice{position:absolute;top:calc(100% + 8px);right:0;width:min(380px,70vw);margin:0;padding:10px 12px;border:1px solid #55543b;border-left:3px solid #8f894f;border-radius:8px;background:rgba(13,14,10,.98);box-shadow:0 16px 34px rgba(0,0,0,.45);line-height:1.5}
.chat-shell{display:grid;grid-template-columns:minmax(220px,242px) minmax(0,1fr);flex:1;min-height:0;gap:0;transition:grid-template-columns .2s ease}
.chat-shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}
.chat-sidebar{min-width:0;min-height:0;overflow:hidden;border:0;border-right:1px solid var(--line);border-radius:0;background:linear-gradient(180deg,rgba(31,33,27,.98),rgba(17,19,16,.98));opacity:1;transition:opacity .15s ease,border-color .15s ease}
.chat-shell.sidebar-collapsed .chat-sidebar{pointer-events:none;border-color:transparent;opacity:0}
.chat-sidebar-scroll{display:flex;height:100%;min-height:0;flex-direction:column;overflow:hidden;padding:0;overscroll-behavior:contain}
.chat-sidebar-identity{flex:0 0 auto;padding:11px 12px 10px;border-bottom:1px solid rgba(166,177,148,.14);background:linear-gradient(180deg,rgba(38,39,28,.76),rgba(16,18,14,.66))}
.chat-sidebar-section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.chat-sidebar-section-heading strong{display:block;color:#e7df9b}
.chat-sidebar-section-heading span{display:block;margin-top:2px;color:#8f998b;font-size:var(--type-caption)}
.chat-identity-switcher{display:grid;gap:7px}
.chat-identity-option{display:grid;width:100%;gap:2px;padding:8px 9px;text-align:left;border:1px solid rgba(166,177,148,.16);border-radius:11px;background:rgba(7,8,5,.54);color:var(--text);font-weight:600}
.chat-identity-option span{min-width:0;overflow:hidden;color:#9aa495;font-size:var(--type-caption);font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.chat-identity-option.active{border-color:#d8cc75;background:linear-gradient(135deg,rgba(99,94,48,.34),rgba(22,24,18,.82));box-shadow:inset 0 0 0 1px rgba(216,204,117,.16)}
.identity-context{flex:0 0 auto;padding:11px 12px 10px;border-bottom:1px solid var(--line);background:rgba(15,17,13,.52)}
.profile-context-row{display:flex;align-items:end;justify-content:space-between;gap:8px}
.profile-context-row .field-label{min-width:0;flex:1}
.profile-context-row select{padding:7px 28px 7px 8px}
.active-user-single{min-width:0;overflow:hidden;color:#aeb7a6;font-size:var(--type-caption);text-overflow:ellipsis;white-space:nowrap}
.identity-manage-tool{position:relative;flex:0 0 auto}
.identity-manage-tool>summary{cursor:pointer;padding:5px 0;color:#8f998b;font-size:var(--type-caption);list-style:none}
.identity-manage-tool>summary::-webkit-details-marker{display:none}
.identity-manage-content{position:absolute;z-index:5;top:calc(100% + 7px);right:0;width:220px;padding:8px;border:1px solid #55543b;border-radius:6px;background:#11140f;box-shadow:0 14px 30px rgba(0,0,0,.46)}
.identity-manage-content form{margin:0;padding:0}
.identity-manage-content form+form{margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.identity-manage-content input,.identity-manage-content button{width:100%;padding:8px;font-size:var(--type-control)}
.identity-context-heading{display:flex;align-items:center;justify-content:space-between;margin-top:8px;color:#d9d49d;font-size:var(--type-control)}
.identity-context-heading small{font-size:var(--type-caption)}
.identity-switcher{display:flex;gap:6px;margin-top:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.identity-option{display:grid;min-width:92px;max-width:150px;flex:1 0 auto;gap:1px;padding:7px 9px;border:1px solid rgba(166,177,148,.18);border-radius:5px;background:rgba(10,12,9,.62);color:var(--text);text-align:left}
.identity-option strong,.identity-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.identity-option strong{font-size:var(--type-control)}
.identity-option span{color:var(--muted);font-size:var(--type-caption);font-weight:400}
.identity-option.active{border-color:#aaa254;background:rgba(102,97,48,.24);box-shadow:inset 0 -2px #d7cc70}
.active-identity-card{margin-top:8px;padding:7px 0 0;border-top:1px solid rgba(166,177,148,.15)}
.active-identity-card>strong{color:#eee59a;font-size:var(--type-body)}
.active-identity-card>p{margin:1px 0 5px;color:var(--muted);font-size:var(--type-caption);line-height:1.4}
.identity-status-line{display:flex;flex-wrap:wrap;gap:3px 8px;color:#9eaa98;font-size:var(--type-caption)}
.scope-context{margin:5px 0 0;color:#8f998b;font-size:var(--type-caption)}
.sidebar-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:0 0 auto;gap:0;padding:0;border-bottom:1px solid var(--line)}
.sidebar-tab{position:relative;padding:9px 4px;border:0;border-right:1px solid rgba(166,177,148,.12);border-radius:0;background:transparent;color:#aaa98a;font-size:var(--type-control);text-align:center}
.sidebar-tab:last-child{border-right:0}
.sidebar-tab::before,.sidebar-tab::after{display:none}
.sidebar-tab:hover{background:rgba(229,217,111,.05);color:#fff7ba}
.sidebar-tab[aria-selected="true"]{background:rgba(109,105,52,.18);color:#fff3a3;box-shadow:inset 0 -2px #c9be65}
.sidebar-tab-panel{flex:1;min-height:0;overflow-y:auto;padding:12px 12px 18px;overscroll-behavior:contain;scrollbar-gutter:stable}
.sidebar-tab-panel[hidden]{display:none}
.sidebar-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:0 0 8px}
.sidebar-panel-heading>div{display:grid;gap:2px}
.sidebar-panel-heading span{color:var(--muted);font-size:.72rem}
.sidebar-panel-heading .sidebar-tool{margin:0}
.sidebar-panel-heading .sidebar-tool[open]{width:100%;flex-basis:100%}
.sidebar-tool{margin:9px 0;border:1px solid rgba(166,177,148,.18);border-radius:6px;background:rgba(20,23,17,.72)}
.sidebar-tool>summary{cursor:pointer;padding:8px 9px;color:#c6d1bd;font-size:.8rem;font-weight:650}
.sidebar-tool[open]>summary{border-bottom:1px solid var(--line);color:var(--accent)}
.sidebar-tool form{grid-template-columns:1fr;margin:8px;padding:0}
.sidebar-tool textarea{min-height:82px}
.sidebar-group{padding:0 0 12px}
.sidebar-group+ .sidebar-group{border-top:1px solid var(--line);padding-top:10px}
.sidebar-group h3{font-size:1rem;margin:4px 0 8px}
.sidebar-tab-panel .list{margin:8px 0 12px}
.sidebar-tab-panel .item{font-size:.85rem}
.sidebar-memory-heading{padding:0 2px}
.sidebar-memory-heading p{margin:0 0 10px;line-height:1.4}
.reflection-tool>p{margin:8px 9px 0;font-size:.76rem}
.reflection-tool .list{margin-inline:8px}
.conversation-create .field-label:nth-child(3),.conversation-create>button{grid-column:auto}
.conversation-list{grid-template-columns:1fr;margin:4px 0 12px}
.conversation-row{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:stretch;gap:4px}
.conversation-entry{padding:10px 11px;border-color:rgba(166,177,148,.16);border-radius:6px;background:rgba(11,13,10,.62);line-height:1.35}
.conversation-entry span{font-size:.72rem;line-height:1.35}
.conversation-entry.active{border-color:#9e9550;border-left:3px solid #d7cc70;background:rgba(88,84,42,.18);box-shadow:none}
.conversation-delete{display:grid;width:28px;min-width:28px;padding:0;place-items:center;border-radius:5px;color:#898f83;font-size:1rem;font-weight:400}
.conversation-delete:hover{border-color:#805b55;color:#e2a099;background:rgba(128,66,58,.14)}
.memory-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.memory-values label{min-width:0;font-size:.72rem}
.chat-room{display:grid;grid-template-rows:minmax(0,1fr) auto auto;height:100%;min-height:0;overflow:hidden;padding:5px 10px;border:0;border-radius:0;background:linear-gradient(135deg,rgba(45,44,32,.96),rgba(25,28,21,.98) 62%,rgba(17,20,16,.99))}
.icon-button{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;padding:0;font-size:1rem}
.message-stage{position:relative;min-height:0;overflow:hidden}
.message-stream{height:100%;min-height:0;overflow-y:auto;padding:12px clamp(12px,2.6vw,30px);background:radial-gradient(circle at 45% 15%,rgba(170,154,76,.08),transparent 38%);scroll-behavior:smooth;overscroll-behavior:contain;scrollbar-gutter:stable}
.message{width:fit-content;padding:12px 14px;border-color:rgba(166,177,148,.18);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.message.ai{max-width:94%;border-radius:8px 16px 16px 16px;background:rgba(27,33,27,.78)}
.message.user{max-width:82%;border-color:#c5ad4e;border-radius:14px 6px 14px 14px;background:linear-gradient(135deg,#efd66d,#dbc052);color:#282313;box-shadow:0 10px 28px rgba(29,25,10,.24)}
.message-heading{display:flex;align-items:baseline;justify-content:space-between;gap:18px}
.message-heading strong{font-size:.86rem;color:#dbe7d4}
.message.user .message-heading strong{color:#332d18}
.message-heading time{flex:0 0 auto;color:var(--muted);font-size:.68rem}
.message.user .message-heading time,.message.user .message-meta{color:#6b5c2b}
.message p,.message-content{margin:8px 0;line-height:1.72}
.message-meta{color:var(--muted);font-size:.68rem;line-height:1.45;opacity:.8}
.message-date-separator{display:flex;width:100%;align-items:center;gap:10px;margin:8px 0;color:#8f998b;font-size:.7rem}
.message-date-separator::before,.message-date-separator::after{content:"";height:1px;flex:1;background:rgba(166,177,148,.14)}
.message-date-separator span{flex:0 0 auto}
.jump-latest{position:absolute;bottom:12px;left:50%;width:38px;height:38px;padding:0;transform:translateX(-50%);border-radius:50%;background:#20261d;color:var(--text);box-shadow:0 6px 20px #0008}
.context-preview{border:0;background:transparent}
.context-preview-items{position:absolute;top:calc(100% + 8px);right:0;display:grid;width:min(460px,78vw);max-height:320px;gap:7px;overflow-y:auto;padding:10px 12px;border:1px solid #55543b;border-radius:8px;background:rgba(13,14,10,.98);box-shadow:0 16px 34px rgba(0,0,0,.45);scrollbar-gutter:stable}
.context-preview-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid rgba(166,177,148,.18);padding-top:6px;font-size:.8rem}
.context-preview-item:first-child{border-top:0}
.context-preview-item strong{font-weight:600}
.context-preview-item.excluded{opacity:.62}
.context-preview-item button{flex:0 0 auto;padding:5px 8px;font-size:.75rem}
.chat-composer{grid-template-columns:minmax(0,1fr) auto;gap:7px;margin:6px 0 3px;padding:5px;border:1px solid #4c4e3e;border-radius:8px;background:linear-gradient(180deg,rgba(24,26,22,.96),rgba(13,15,12,.96));transition:border-color .15s ease,box-shadow .15s ease}
.chat-composer:focus-within{border-color:#64785a;box-shadow:0 0 0 2px rgba(183,227,155,.08)}
.composer-input-shell{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:end;gap:6px;min-width:0}
.chat-composer textarea{grid-column:2;grid-row:1;min-height:62px;max-height:220px;padding:6px 8px 2px;border:0;background:transparent;line-height:1.55;overflow-y:auto;outline:0}
.composer-helper-row{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-height:20px;padding:1px 3px 0}
.composer-shortcut-hint{padding:1px 5px;color:#788174;font-size:.66rem;text-align:right}
.voice-input-status{min-width:0;overflow:hidden;color:var(--muted);font-size:.7rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.voice-input-status:empty{display:none}
.voice-input-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:auto;padding:5px 8px;border-radius:8px;font-size:.72rem;line-height:1.2;white-space:nowrap}
.voice-input-button.listening{border-color:#d8ca73;background:rgba(154,141,62,.22);color:#f0e4a4}
.chat-composer .voice-input-button{width:auto;min-width:auto;height:auto;align-self:auto;padding:4px 7px}
.chat-composer button{min-width:82px;height:42px;align-self:end}
.chat-attach-toggle{grid-column:1;grid-row:1;display:grid!important;place-items:center;min-width:36px!important;width:36px;height:36px!important;padding:0!important;border:1px solid rgba(197,173,78,.32);border-radius:10px;background:rgba(44,42,25,.9);color:#eee59a;font-size:1rem;line-height:1}
.chat-attach-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}
.chat-attach-panel{position:absolute;bottom:calc(100% + 8px);left:0;z-index:8;display:grid;grid-template-columns:repeat(3,minmax(64px,1fr));gap:8px;width:min(250px,calc(100vw - 92px));padding:10px;border:1px solid rgba(166,177,148,.28);border-radius:14px;background:rgba(20,22,16,.98);box-shadow:0 14px 32px rgba(0,0,0,.35)}
.chat-attach-panel.voice-unavailable{grid-template-columns:repeat(2,minmax(64px,1fr))}
.chat-attach-option{display:flex!important;min-width:0!important;width:auto!important;height:auto!important;min-height:64px;padding:8px 6px!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid rgba(166,177,148,.22);border-radius:11px;background:rgba(31,34,24,.96);color:#e6e7d8;font-size:.72rem;line-height:1.2}
.chat-attach-option:hover{border-color:rgba(197,173,78,.58);background:rgba(53,49,27,.98)}
.chat-attach-panel #chat-voice{display:flex!important;min-width:0!important;width:auto!important;height:auto!important;min-height:64px;padding:8px 6px!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid rgba(166,177,148,.22);border-radius:11px;background:rgba(31,34,24,.96);color:#e6e7d8;font-size:.72rem;line-height:1.2}
.chat-attach-panel #chat-voice[hidden]{display:none!important}
.chat-attach-panel #chat-voice:hover{border-color:rgba(197,173,78,.58);background:rgba(53,49,27,.98)}
.chat-attach-panel #chat-voice svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}
.chat-attach-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(197,173,78,.16);color:#eee59a;font-size:1.15rem}
.chat-attach-status{grid-column:1 / -1;max-width:100%;padding:2px 3px;text-align:center}
.composer-helper-row{grid-column:1 / -1;grid-row:2}
.chat-attach-panel[hidden]{display:none!important}
.chat-status-row{min-height:27px;padding:0 2px}
.personal-workspace{height:100%;max-height:100%;min-height:0;overflow:hidden}
.personal-workbench{display:flex;height:100%;min-height:0;flex-direction:column;overflow:hidden;padding:0;background:rgba(20,21,15,.9)}
.workbench-heading{flex:0 0 auto;padding:16px 18px 10px}
.workbench-heading h2{margin:3px 0 0}
.workbench-tabs{display:flex;flex:0 0 auto;gap:4px;overflow-x:auto;padding:0 12px 10px;border-bottom:1px solid var(--line);scrollbar-width:thin}
.workbench-tab{flex:1 0 auto;min-width:max-content;padding:8px 10px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:.85rem;white-space:nowrap}
.workbench-tab:hover{border-color:var(--line);color:var(--text)}
.workbench-tab[aria-selected="true"]{border-color:#777448;background:#353622;color:#e9e5b2;box-shadow:inset 0 -2px #c7c176}
.workbench-panel{flex:1;min-height:0;overflow-y:auto;padding:16px 18px 22px;overscroll-behavior:contain;scrollbar-gutter:stable}
.workbench-panel[hidden]{display:none}
.panel-intro h3{margin:0 0 4px;font-size:1.15rem}
.panel-intro p{margin:0 0 12px;line-height:1.45}
.workbench-panel form{margin-top:12px}
.journal-panel{background:linear-gradient(105deg,rgba(222,208,169,.97),rgba(240,227,189,.98) 48%,rgba(216,199,157,.97));color:#2c2416}
.journal-panel .muted,.journal-panel .meta,.journal-panel .field-label,.journal-panel .form-status{color:#6e624a}
.journal-panel input,.journal-panel textarea,.journal-panel select{background:#f6edcf;color:#2c2416;border-color:#9f9068}
.journal-panel .item{background:#eee1bd;border-color:#aa9a72;color:#2c2416}
.journal-panel .quiet{color:#554b36;border-color:#8d7e5c}
.note-summary-editor{margin:12px 0;padding:10px 0;border-top:1px solid #aa9a72;border-bottom:1px solid #aa9a72}.note-summary-editor summary{cursor:pointer;font-weight:700}.note-summary-editor textarea{width:100%;min-height:96px;margin-top:10px;line-height:1.5}.note-summary-editor .meta{margin-top:8px}
.journal-form{grid-template-rows:auto minmax(150px,1fr) auto auto auto auto auto;min-height:calc(100% - 58px)}
.journal-body-field{min-height:150px}
.journal-body-field textarea{height:100%;min-height:150px;resize:vertical;line-height:1.55}
.voice-input-row{display:flex;align-items:center;gap:8px;min-height:28px}
.voice-input-row.voice-unavailable{display:none}
.journal-panel .voice-input-button{color:#554b36;border-color:#8d7e5c}
.journal-panel .voice-input-button.listening{border-color:#86713a;background:rgba(170,145,69,.18);color:#554b36}
.form-status{min-height:1.25em;font-size:.8rem;color:var(--muted)}
.bridge-panel{background:rgba(20,24,19,.92)}
.shared-panel{background:rgba(25,24,18,.94)}
.shared-history{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}
.shared-history>summary{cursor:pointer;color:var(--muted);font-size:var(--type-control)}
.shared-proposal{display:block;margin:0;padding:12px}
.shared-proposal-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.shared-status{flex:0 0 auto;padding:3px 6px;border:1px solid #686446;border-radius:4px;color:#ddd59c;font-size:var(--type-caption)}
.shared-status.accepted,.shared-status.edited{border-color:#54704d;color:#b7e39b}
.shared-status.rejected{border-color:#754b48;color:#e5a39d}
.shared-status.deferred{border-color:#72633e;color:#e4ca7c}
.shared-proposal-content{margin:10px 0 8px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:var(--leading-body)}
.shared-proposal-reason{margin:8px 0 0;color:var(--muted);font-size:var(--type-caption);line-height:1.5}
.shared-review-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.shared-review-actions button{width:100%}
.shared-review-actions .shared-reject{border-color:#754b48;color:#e5a39d}
.shared-edit-form{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.shared-edit-form textarea{width:100%;min-height:120px;line-height:var(--leading-body)}
.bridge-write-option{display:flex;align-items:flex-start;gap:8px;color:var(--muted);font-size:var(--type-control);line-height:1.4}
.bridge-write-option input{width:17px;height:17px;flex:0 0 17px;margin-top:1px;padding:0;accent-color:var(--accent)}
.bridge-token{display:flex;align-items:center;gap:8px;margin-top:8px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#0d100d}
.bridge-token code{min-width:0;flex:1;overflow-wrap:anywhere;color:#d8efc7}
.bridge-token button{flex:0 0 auto;padding:6px 9px}
.export-panel{background:rgba(20,21,15,.88)}
.backup-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}
.backup-actions button{width:100%}
.chat-panel .chat-room{background:linear-gradient(135deg,rgba(45,44,32,.96),rgba(25,28,21,.98) 62%,rgba(17,20,16,.99))}
.chat-sidebar .conversation-entry{background:rgba(11,13,10,.62)}
.chat-sidebar .conversation-entry.active{background:rgba(88,84,42,.18)}

/* Unified typography scale: display, section, subheading, body, control, caption. */
body{font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;font-size:var(--type-body);line-height:var(--leading-body)}
input,textarea,select,button{font-family:inherit;font-size:var(--type-body);line-height:var(--leading-body)}
header h1,.auth-card h1{font-size:var(--type-display);line-height:var(--leading-tight)}
.chat-panel-heading h2,.workbench-heading h2{font-size:var(--type-section);line-height:var(--leading-tight)}
.panel-intro h3,.sidebar-group h3{font-size:var(--type-subheading);line-height:var(--leading-tight)}
.sidebar-panel-heading strong,.message-heading strong,.conversation-entry strong,.item strong{font-size:var(--type-body);line-height:1.35}
.message-content,.journal-form textarea{font-size:var(--type-body);line-height:var(--leading-long)}
.field-label input,.field-label select,.field-label textarea{font-size:var(--type-body);line-height:var(--leading-body)}
.sidebar-tab{font-size:var(--type-body);line-height:1.35}
.workbench-tab,.sidebar-tool>summary,.field-label,.item-actions button,.item-actions a,.chat-status-row .quiet,.chat-status-row .stop,.context-preview-item,.context-preview-item button{font-size:var(--type-control);line-height:1.4}
.chat-toolbar-actions .stage-badge,.chat-toolbar-actions button,.compact-select select,.provider-disclosure,.toolbar-disclosure{font-size:var(--type-control);line-height:1.35}
.provider-notice{font-size:var(--type-control);line-height:var(--leading-body)}
.sidebar-tab-panel .item{font-size:var(--type-body)}
small,.muted,.meta,.form-status,.chat-current-companion,.sidebar-panel-heading span,.conversation-entry span,.reflection-tool>p,.memory-values label,.message-heading time,.message-meta,.message-date-separator,.composer-shortcut-hint{font-size:var(--type-caption);line-height:1.45}
header .ambient-volume{font-size:var(--type-caption)}
#health,.header-actions button{font-size:var(--type-control);line-height:1.35}
@media(max-width:1180px){.workspace-grid{grid-template-columns:minmax(0,1.55fr) minmax(300px,.78fr)}.chat-shell{grid-template-columns:minmax(220px,250px) minmax(0,1fr)}}
@media(max-width:900px){.workspace-grid{grid-template-columns:1fr;height:auto;min-height:0;overflow:visible}.ai-workspace,.chat-panel{height:min(820px,calc(100vh - 24px));min-height:650px}.personal-workspace{height:min(760px,85dvh);max-height:none}.personal-workbench{height:100%}}
@media(max-width:700px){.chat-shell{grid-template-columns:1fr;overflow:visible}.chat-sidebar{max-height:420px}.chat-shell.sidebar-collapsed .chat-sidebar{display:none}.chat-room{min-height:600px}.memory-values{grid-template-columns:1fr}.chat-title-group h3{white-space:normal}.icon-button{width:36px;height:36px;flex-basis:36px}.personal-workspace{height:min(720px,88dvh)}.workbench-heading{padding:14px 14px 8px}.workbench-tabs{padding-inline:8px}.workbench-tab{flex:0 0 auto}.workbench-panel{padding:14px}.journal-form{min-height:0}.search-row{grid-template-columns:1fr 1fr}}

body{position:relative;isolation:isolate;min-height:100vh;background:#17180f}body::before,body::after{content:"";position:fixed;inset:0;pointer-events:none}body::before{z-index:-2;background:linear-gradient(180deg,rgba(255,250,190,.24) 0 8%,rgba(126,119,66,.2) 22%,rgba(46,43,27,.48) 58%,rgba(20,18,13,.82) 100%),repeating-linear-gradient(90deg,rgba(249,245,184,.07) 0 2px,transparent 2px 12vw),repeating-linear-gradient(0deg,transparent 0 34px,rgba(74,69,38,.17) 34px 36px),linear-gradient(180deg,#b7ae67 0 57%,#5f5537 57% 100%)}body::after{z-index:-1;background:radial-gradient(ellipse at 50% 34%,transparent 0 12%,rgba(15,14,9,.2) 44%,rgba(7,7,5,.78) 100%),linear-gradient(102deg,rgba(12,12,8,.58) 0 13%,transparent 13% 78%,rgba(10,10,7,.48) 78% 100%),repeating-linear-gradient(90deg,transparent 0 10vw,rgba(255,253,205,.16) 10vw 16vw,transparent 16vw 27vw);mix-blend-mode:multiply}header,main{position:relative;z-index:1}.hero,article{background:rgba(20,21,15,.88);box-shadow:0 20px 55px rgba(0,0,0,.3);backdrop-filter:blur(7px)}.chat-room{background:rgba(14,15,10,.9)}.conversation-entry,.item{background:rgba(12,13,9,.84)}.ambient-controls{display:flex;align-items:center;gap:8px}.ambient-controls button{white-space:nowrap;padding:8px 10px}.ambient-volume{display:grid;grid-template-columns:auto 82px;align-items:center;gap:6px;color:var(--muted);font-size:.72rem}.ambient-volume input{width:82px;padding:0;accent-color:var(--accent)}@media(max-width:900px){.header-actions{flex-wrap:wrap;justify-content:flex-end}.ambient-controls{order:3;width:100%;justify-content:flex-end}}@media(max-width:700px){.ambient-controls{align-items:flex-end;flex-direction:column}.ambient-volume{grid-template-columns:auto 110px}.ambient-volume input{width:110px}}

.auth-trust{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.9rem}.auth-trust input{width:auto;margin:0;accent-color:var(--accent)}.auth-sessions-menu{position:relative}.auth-sessions-menu>summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:11px;padding:8px 11px;color:var(--muted)}.auth-sessions-menu>summary::-webkit-details-marker{display:none}.auth-sessions-popover{position:absolute;z-index:8;right:0;top:calc(100% + 8px);width:min(430px,85vw);padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(13,14,10,.98);box-shadow:0 18px 44px rgba(0,0,0,.5)}.auth-sessions-popover>p{margin:5px 0 10px}.auth-session-list{display:grid;gap:8px}.auth-session-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px}.auth-session-item div{display:grid;gap:2px}.auth-session-item span{font-size:.75rem;color:var(--muted)}.auth-session-item button{flex:0 0 auto;padding:7px 9px;font-size:.78rem}

/* Today is the calm landing room; chat and workbench remain focused secondary views. */
[data-app-view-panel][hidden]{display:none!important}
.app-header{display:grid;grid-template-columns:auto 1fr auto;gap:18px}
.app-nav{display:flex;align-items:center;justify-content:center;gap:5px}
.app-nav button{min-width:76px;padding:8px 14px;border:1px solid #6e6a42;background:rgba(84,82,46,.7);color:#f3edb0}
.app-nav button.quiet{border-color:transparent;background:transparent;color:var(--muted)}
.today-view{min-height:calc(100dvh - 104px);padding:0 12px 28px}
.today-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:26px clamp(18px,4vw,52px) 22px;border:1px solid rgba(207,198,112,.35);border-radius:16px 16px 6px 6px;background:linear-gradient(110deg,rgba(123,116,63,.76),rgba(51,49,30,.88) 48%,rgba(20,21,15,.94));box-shadow:0 22px 56px rgba(0,0,0,.32)}
.today-heading h2{margin:3px 0 5px;color:#fff4ad;font-size:clamp(1.55rem,3vw,2.35rem)}
.today-heading p{margin:0;color:#d8d2a1}
.today-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.66fr);gap:12px;margin-top:12px}
.today-grid article{padding:20px;border-radius:8px;background:rgba(20,21,15,.9)}
.today-journal-card{background:linear-gradient(110deg,rgba(230,216,174,.96),rgba(197,182,137,.96))!important;color:#2c2416}
.today-journal-card .muted,.today-journal-card small{color:#6e624a}
.today-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.today-section-heading h3{margin:2px 0 0;font-size:var(--type-section)}
.today-section-heading button{padding:7px 10px}
.today-section-body{display:grid;align-items:start;gap:12px}
.today-empty{max-width:54ch;margin:4px 0;line-height:1.7}
.today-journal-entry strong{font-size:1rem}
.today-journal-entry p{max-width:72ch;margin:8px 0;line-height:1.72}
.today-journal-entry span{color:#6e624a;font-size:var(--type-caption)}
.today-attention{display:grid;gap:8px}
.today-attention-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px;border:1px solid rgba(166,177,148,.18);background:rgba(12,13,9,.7);color:var(--text);text-align:left}
.today-attention-item span{display:grid;gap:2px}
.today-attention-item small{font-weight:400}
.today-attention-item b{display:grid;min-width:30px;height:30px;place-items:center;border-radius:50%;background:#30352a;color:#c6d1bd}
.today-attention-item.active{border-color:#8c8050;background:rgba(87,74,35,.34)}
.today-attention-item.active b{background:#d1bf62;color:#282313}
.today-companions-card,.today-conversations-card{grid-column:1/-1}
.today-companions{display:grid;gap:3px}
.today-companion{display:grid;grid-template-columns:minmax(150px,1.3fr) repeat(3,minmax(120px,1fr));align-items:center;gap:14px;width:100%;padding:12px 14px;border:0;border-top:1px solid rgba(166,177,148,.16);border-radius:0;background:transparent;color:var(--muted);font-weight:400;text-align:left}
.today-companion:first-child{border-top:0}
.today-companion:hover{background:rgba(229,217,111,.06)}
.today-companion-name{display:grid;color:var(--text)}
.today-companion-name small{font-weight:400}
.today-companion .needs-attention{color:#e8d67e}
.today-conversations{display:grid;gap:18px}
.today-conversation-group h3{margin:0 0 6px;color:#aaa98a;font-size:var(--type-control);font-weight:650}
.today-conversation{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(260px,2fr) auto;align-items:center;gap:18px;width:100%;padding:12px 14px;border:0;border-top:1px solid rgba(166,177,148,.14);border-radius:0;background:transparent;color:var(--text);text-align:left}
.today-conversation:hover{background:rgba(229,217,111,.06)}
.today-conversation span{display:grid;gap:2px}
.today-conversation small,.today-conversation time{color:var(--muted);font-size:var(--type-caption);font-weight:400}
.today-conversation p{margin:0;color:#cbd2c6;font-weight:400;line-height:1.5}
.attention-badge{display:inline-grid;min-width:18px;height:18px;margin-left:3px;padding:0 5px;place-items:center;border-radius:99px;background:#d1bf62;color:#282313;font-size:.66rem;font-weight:800;vertical-align:middle}
.attention-badge[hidden]{display:none}
.workspace-grid.view-chat,.workspace-grid.view-ai-space,.workspace-grid.view-workbench{grid-template-columns:minmax(0,1fr)}
.workspace-grid.view-chat [data-workspace-area="ai-space"],.workspace-grid.view-chat [data-workspace-area="workbench"],.workspace-grid.view-ai-space [data-workspace-area="chat"],.workspace-grid.view-ai-space [data-workspace-area="workbench"],.workspace-grid.view-workbench [data-workspace-area="chat"],.workspace-grid.view-workbench [data-workspace-area="ai-space"]{display:none}
.workspace-grid.view-ai-space .ai-space-workspace,.workspace-grid.view-workbench .personal-workspace{width:min(880px,100%);justify-self:center}
@media(max-width:900px){.app-header{grid-template-columns:1fr auto}.app-nav{grid-column:1/-1;grid-row:2}.today-grid{grid-template-columns:1fr}.today-companion{grid-template-columns:minmax(140px,1fr) 1fr}.today-companion span:nth-child(3),.today-companion span:nth-child(4){text-align:right}.today-journal-card,.today-attention-card{grid-column:1}.today-companions-card,.today-conversations-card{grid-column:1}}
@media(max-width:700px){.app-header{display:flex;flex-wrap:wrap}.app-nav{order:3;width:100%}.app-nav button{min-height:44px;flex:1}.today-view{padding-inline:8px}.today-heading{align-items:flex-start;flex-direction:column;padding:20px 18px}.today-grid article{padding:16px}.today-companion{grid-template-columns:1fr 1fr;min-height:56px;gap:5px 12px}.today-conversation{grid-template-columns:1fr auto;min-height:58px;gap:5px 10px}.today-conversation p{grid-column:1/-1}.today-conversation time{grid-column:2;grid-row:1}.today-attention-item{min-height:58px}.today-section-heading button{min-height:44px}}

/* Mobile minimum pass: keep the daily loop usable before full PWA work. */
input,textarea,select,button{max-width:100%}
form,label,.item,.message,.today-companion,.today-conversation{min-width:0}
@media(max-width:700px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  header.app-header{align-items:flex-start;gap:10px;padding:12px 10px}
  .app-header>div:first-child{min-width:0;flex:1 1 160px}
  .app-header h1{font-size:1.35rem}
  .app-header small{font-size:.64rem}
  .header-actions{width:100%;flex:1 1 100%;align-items:center;justify-content:flex-start;flex-flow:row wrap;gap:6px}
  .ambient-controls{order:4;width:auto;min-width:0;align-items:center;justify-content:flex-end;flex:1 1 190px;flex-direction:row}
  .ambient-controls button{min-width:112px;min-height:40px;flex:1 1 112px;padding:8px 9px;white-space:normal}
  .ambient-volume{grid-template-columns:auto minmax(72px,1fr);min-width:96px;max-width:130px;flex:0 1 120px}
  #health{order:1;min-width:0;flex:1 1 118px;text-align:center}
  .auth-sessions-menu{order:2;flex:0 0 auto}
  .header-actions>#logout{order:3;flex:0 0 auto}
  .auth-sessions-menu>summary,.header-actions>#logout,#health{min-height:40px;padding:8px 10px}
  main{max-width:100%;overflow:hidden}
  article{border-radius:10px}
  .today-view{padding:0 8px 18px}
  .today-heading{gap:10px;padding:16px 14px;border-radius:12px 12px 6px 6px}
  .today-heading h2{font-size:1.35rem}
  .today-grid{gap:8px;margin-top:8px}
  .today-grid article{padding:14px}
  .today-section-heading{align-items:flex-start;gap:8px}
  .today-attention-item{align-items:flex-start;padding:10px}
  .today-attention-item b{width:26px;min-width:26px;height:26px}
  .today-companion{grid-template-columns:1fr;min-height:0;align-items:start;gap:3px;padding:11px 4px}
  .today-companion span:nth-child(3),.today-companion span:nth-child(4){text-align:left}
  .today-conversation{grid-template-columns:1fr;min-height:0;gap:4px;padding:11px 4px}
  .today-conversation p,.today-conversation time{grid-column:auto;grid-row:auto}
  .today-conversation time{justify-self:start}
  .workspace-grid{gap:8px;padding:0 8px 12px}
  .workspace-grid.view-chat{height:calc(100dvh - 154px - 52px - env(safe-area-inset-bottom,0));min-height:0;overflow:hidden}
  .workspace-grid.view-workbench{height:auto;min-height:0;overflow:visible}
  .ai-workspace,.chat-panel{height:100%;min-height:0}
  .chat-panel-heading{align-items:stretch;flex-direction:column;padding:8px}
  .chat-workspace-label{width:100%;min-width:0}
  .chat-title-copy{display:grid;gap:0}
  .chat-toolbar-actions{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:6px}
  .current-privacy{flex:1 1 104px}
  .compact-select select{width:100%;max-width:100%}
  .context-preview-items,.provider-disclosure .provider-notice{position:fixed;top:112px;right:10px;left:10px;width:auto;max-height:50dvh}
  .chat-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}
  .chat-shell.sidebar-collapsed{grid-template-columns:1fr}
  .chat-sidebar{max-height:34dvh;min-height:0;border-right:0;border-bottom:1px solid var(--line);overflow:hidden}
  .chat-sidebar-scroll{max-height:34dvh}
  .chat-room{grid-template-rows:minmax(0,1fr) auto auto;height:100%;min-height:0;padding:4px 6px}
  .message-stream{padding:10px 6px}
  .message.ai,.message.user{max-width:96%}
  .chat-composer{grid-template-columns:1fr;gap:5px;margin:5px 0}
  .chat-composer textarea{min-height:92px;max-height:32dvh}
  .chat-composer button{width:100%;height:42px}
  .chat-status-row{align-items:stretch;flex-direction:column;gap:5px}
  .chat-actions{align-items:stretch;flex-direction:column}
  .chat-actions button{width:100%}
  .personal-workspace{height:auto;max-height:none;overflow:visible}
  .personal-workbench{height:auto;min-height:72dvh;overflow:visible}
  .workbench-panel{min-height:420px;max-height:none;overflow-y:visible;padding:14px}
  .journal-form{grid-template-rows:auto;min-height:0}
  .journal-body-field textarea{min-height:180px}
  .item-actions,.shared-review-actions{grid-template-columns:1fr}
  .item-actions button,.item-actions a{width:100%}
  .context-preview-item{align-items:stretch;flex-direction:column}
  .context-preview-item button{width:100%}
}
@media(max-width:420px){
  .app-nav{gap:4px}
  .app-nav button{min-width:0;padding:8px 9px}
  .header-actions{gap:5px}
  .ambient-controls{flex:1 1 100%;justify-content:flex-start}
  #health{flex:1 1 120px}
  .today-heading h2{font-size:1.25rem}
  .today-section-heading{flex-direction:column}
  .today-attention-item{gap:8px}
  .today-attention-item b{width:24px;min-width:24px;height:24px}
  .identity-option{min-width:86px}
  .sidebar-tab{padding-inline:2px}
  .conversation-row{grid-template-columns:minmax(0,1fr) 32px}
}

/* === ATMOSPHERE & HIERARCHY PASS === */

/* Fluorescent flicker: imperceptible most of the time, just alive */
@keyframes fl {
  0%,88%,90%,95%,97%,100%{opacity:1}
  89%{opacity:.975}
  96%{opacity:.96}
}
body::before{animation:fl 9s ease-in-out infinite;will-change:opacity}

/* Header: monospace corridor label feel */
header h1{letter-spacing:.055em;text-shadow:0 0 32px rgba(210,210,110,.3)}
header small{letter-spacing:.2em;opacity:.8}

/* Card elevation — 3 distinct layers */
article{
  box-shadow:0 2px 4px rgba(0,0,0,.2),0 10px 32px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,252,180,.04);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)
}
.today-heading{
  box-shadow:0 0 0 1px rgba(207,198,112,.25),0 26px 64px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,250,180,.14)
}
.today-journal-card{
  box-shadow:0 2px 8px rgba(80,64,20,.22),0 14px 42px rgba(40,32,10,.32),inset 0 1px 0 rgba(255,245,200,.5)
}
.today-attention-card,.today-companions-card,.today-conversations-card{
  border-color:rgba(166,177,148,.24)
}

/* Inner items — 3rd layer, noticeably deeper */
.today-attention-item,.today-companion,.today-conversation{
  background:rgba(7,8,5,.78);border-color:rgba(166,177,148,.13)
}
.today-attention-item.active{background:rgba(87,74,35,.46)}
.conversation-entry,.item{
  background:rgba(7,8,5,.84);border-color:rgba(166,177,148,.13)
}
.chat-sidebar .conversation-entry{background:rgba(7,8,5,.84)}
.chat-sidebar .conversation-entry.active{background:rgba(88,84,42,.22)}

/* AI space: identity, private memory, and Bridge authorization live away from chat. */
.ai-space-workspace{height:100%;max-height:100%;min-height:0;overflow:hidden}
.ai-space-panel{display:flex;height:100%;min-height:0;flex-direction:column;overflow:hidden;padding:0}
.ai-space-context{flex:0 0 auto;padding:14px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(15,17,13,.42)}
.ai-space-panel .identity-switcher{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:8px}
.ai-space-panel .identity-manage-tool{position:static}
.ai-space-panel .identity-manage-tool>summary{display:inline-flex;padding:7px 10px;border:1px solid var(--line);border-radius:10px;color:var(--muted)}
.ai-space-panel .identity-manage-content{position:static;width:auto;margin-top:8px;padding:10px;border-radius:12px;box-shadow:none}
.ai-space-tabs{grid-template-columns:repeat(2,minmax(0,1fr));padding-inline:12px;background:rgba(13,15,10,.55)}
.ai-space-tab-panel{flex:1;min-height:0;padding:16px 18px 22px}
.ai-space-panel .sidebar-tool{margin-top:14px}
.ai-space-panel .active-identity-card{padding:10px 0 0}
@media(max-width:700px){
  .workspace-grid.view-ai-space{height:auto;min-height:0;overflow:visible}
  .ai-space-workspace{height:auto;max-height:none;overflow:visible}
  .ai-space-panel{height:auto;min-height:72dvh;overflow:visible}
  .ai-space-context{padding:14px}
  .ai-space-tab-panel{min-height:420px;max-height:none;overflow-y:visible;padding:14px}
  .ai-space-panel .identity-switcher{grid-template-columns:1fr}
}

/* Mobile bottom tab bar */
@media(max-width:700px){
  .app-header{grid-template-columns:1fr auto}
  .app-nav{
    position:fixed;bottom:0;left:0;right:0;z-index:30;
    display:flex;gap:0;order:unset;width:auto;
    padding:0 0 env(safe-area-inset-bottom,0);
    background:rgba(9,10,7,.97);
    border-top:1px solid rgba(166,177,148,.22);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    box-shadow:0 -8px 28px rgba(0,0,0,.4)
  }
  .app-nav button{
    flex:1;min-height:52px;min-width:0;
    padding:8px 4px 6px;
    border:0;border-right:1px solid rgba(166,177,148,.1);border-radius:0;
    background:transparent;color:var(--muted);
    font-size:.68rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
  }
  .app-nav button:last-child{border-right:0}
  .app-nav button:not(.quiet){
    background:rgba(72,70,36,.55);color:#f0eaa8
  }
  body{padding-bottom:calc(52px + env(safe-area-inset-bottom,0))}
  .today-view{padding-bottom:calc(52px + env(safe-area-inset-bottom,0) + 20px)}
  .workspace-grid{padding-bottom:calc(52px + env(safe-area-inset-bottom,0) + 12px)}
}

/* Mobile chat comfort pass: keep controls available but make the chat page feel like a messenger. */
@media(max-width:700px){
  :root{--mobile-tab-height:58px}
  .app-nav{
    position:fixed!important;right:0;bottom:0;left:0;z-index:1000;
    height:calc(var(--mobile-tab-height) + env(safe-area-inset-bottom,0));
    align-items:stretch;
    padding:0 0 env(safe-area-inset-bottom,0)
  }
  .app-nav button{min-height:var(--mobile-tab-height)}
  body{padding-bottom:calc(var(--mobile-tab-height) + env(safe-area-inset-bottom,0))}
  body[data-app-view="chat"]{
    height:100dvh;
    overflow:hidden;
    padding-bottom:0
  }
  body[data-app-view="chat"] header.app-header{
    height:0;
    min-height:0;
    padding:0;
    gap:0;
    overflow:visible
  }
  body[data-app-view="chat"] .app-header>div:first-child,
  body[data-app-view="chat"] .header-actions{display:none}
  body[data-app-view="chat"] main{
    height:100dvh;
    overflow:hidden
  }
  body[data-app-view="chat"] .workspace-grid.view-chat{
    height:calc(100dvh - var(--mobile-tab-height) - env(safe-area-inset-bottom,0));
    min-height:0;
    gap:0;
    overflow:hidden;
    padding:0
  }
  body[data-app-view="chat"] .ai-workspace,
  body[data-app-view="chat"] .chat-panel{
    height:100%;
    min-height:0
  }
  body[data-app-view="chat"] .chat-panel{
    border:0;
    border-radius:0;
    background:rgba(12,14,10,.96);
    box-shadow:none
  }
  body[data-app-view="chat"] .chat-panel-heading{
    height:50px;
    min-height:50px;
    align-items:center;
    flex-direction:row;
    padding:6px 10px;
    border-radius:0
  }
  body[data-app-view="chat"] .chat-workspace-label{gap:8px}
  body[data-app-view="chat"] .chat-title-copy{display:grid;gap:1px}
  body[data-app-view="chat"] .chat-panel-heading h2{font-size:1rem}
  body[data-app-view="chat"] .chat-current-companion{
    display:block;
    max-width:58vw;
    font-size:.68rem
  }
  body[data-app-view="chat"] .chat-toolbar-actions{display:none}
  body[data-app-view="chat"] .chat-shell{
    position:relative;
    display:block;
    height:calc(100% - 50px);
    min-height:0;
    overflow:hidden
  }
  body[data-app-view="chat"] .chat-sidebar{
    position:absolute;
    inset:0 auto 0 0;
    z-index:25;
    width:min(86vw,320px);
    max-height:none;
    border-right:1px solid var(--line);
    border-bottom:0;
    box-shadow:16px 0 34px rgba(0,0,0,.48);
    opacity:1;
    transform:translateX(0);
    transition:transform .18s ease,opacity .18s ease
  }
  body[data-app-view="chat"] .chat-shell.sidebar-collapsed .chat-sidebar{
    display:block;
    pointer-events:none;
    opacity:0;
    transform:translateX(calc(-100% - 18px))
  }
  body[data-app-view="chat"] .chat-sidebar-scroll{
    height:100%;
    max-height:none;
    overflow-y:auto
  }
  body[data-app-view="chat"] .chat-sidebar-identity{
    position:sticky;
    top:0;
    z-index:2;
    background:
      linear-gradient(180deg,rgba(37,38,27,.98),rgba(18,20,15,.96)),
      repeating-linear-gradient(90deg,rgba(246,239,177,.08) 0 1px,transparent 1px 48px)
  }
  body[data-app-view="chat"] .chat-identity-switcher{grid-template-columns:1fr}
  body[data-app-view="chat"] .chat-identity-option{
    min-height:46px;
    border-radius:12px
  }
  body[data-app-view="chat"] .chat-room{
    grid-template-rows:minmax(0,1fr) auto auto;
    height:100%;
    min-height:0;
    padding:0 8px 8px;
    border-radius:0;
    background:linear-gradient(180deg,rgba(15,17,13,.98),rgba(8,10,8,.98))
  }
  body[data-app-view="chat"] .message-stream{
    gap:8px;
    padding:12px 2px 8px
  }
  body[data-app-view="chat"] .message{
    padding:10px 12px;
    box-shadow:none
  }
  body[data-app-view="chat"] .message.ai{max-width:90%}
  body[data-app-view="chat"] .message.user{max-width:82%}
  body[data-app-view="chat"] .message-heading{gap:10px}
  body[data-app-view="chat"] .message p,
  body[data-app-view="chat"] .message-content{
    margin:6px 0;
    line-height:1.62
  }
  body[data-app-view="chat"] .chat-composer{
    grid-template-columns:minmax(0,1fr) 54px;
    align-items:end;
    gap:6px;
    margin:6px 0 3px;
    padding:5px 6px;
    border-radius:20px
  }
  body[data-app-view="chat"] .composer-shortcut-hint{display:none}
  body[data-app-view="chat"] .chat-composer textarea{
    min-height:42px;
    max-height:128px;
    padding:10px 8px 6px;
    line-height:1.4;
    resize:none
  }
  body[data-app-view="chat"] .chat-composer button{
    width:54px;
    min-width:54px;
    height:42px;
    padding:0;
    border-radius:16px;
    font-size:.78rem
  }
  body[data-app-view="chat"] .chat-status-row{
    display:block;
    min-height:0;
    padding:0 4px
  }
  body[data-app-view="chat"] #chat-status{
    min-height:1.1em;
    margin:2px 0 0;
    overflow:hidden;
    color:#7f897c;
    font-size:.66rem;
    text-overflow:ellipsis;
    white-space:nowrap
  }
  body[data-app-view="chat"] .chat-actions{
    display:flex;
    flex-direction:row;
    gap:5px;
    overflow-x:auto
  }
  body[data-app-view="chat"] #chat-reflect{display:none}
  body[data-app-view="chat"] .chat-actions button{
    width:auto;
    min-height:32px;
    padding:5px 8px;
    white-space:nowrap
  }
}

/* Mobile chat app polish: closer to a familiar phone messenger while keeping the Backrooms palette. */
@media(max-width:700px){
  body[data-app-view="chat"] .chat-panel-heading{
    height:46px;
    min-height:46px;
    justify-content:space-between;
    padding:0 10px;
    border-bottom:1px solid rgba(166,177,148,.16);
    background:
      linear-gradient(90deg,rgba(17,19,14,.98),rgba(40,40,27,.98) 48%,rgba(16,18,14,.98)),
      repeating-linear-gradient(90deg,rgba(246,239,177,.08) 0 1px,transparent 1px 42px);
    box-shadow:0 2px 14px rgba(0,0,0,.26)
  }
  body[data-app-view="chat"] .icon-button{
    width:34px;
    height:34px;
    border-radius:8px;
    background:rgba(255,255,255,.05)
  }
  body[data-app-view="chat"] .chat-panel-heading h2{
    max-width:64vw;
    color:#f5efc2;
    font-size:.96rem;
    font-weight:700;
    text-align:left;
    text-shadow:0 0 10px rgba(226,214,126,.18)
  }
  body[data-app-view="chat"] .chat-current-companion{
    max-width:64vw;
    font-size:.62rem
  }
  body[data-app-view="chat"] .chat-shell{height:calc(100% - 46px)}
  body[data-app-view="chat"] .chat-room{
    position:relative;
    grid-template-rows:minmax(0,1fr) auto;
    padding:0;
    background:#11140f
  }
  body[data-app-view="chat"] .message-stage{
    min-height:0;
    background:
      radial-gradient(circle at 50% 0,rgba(238,226,136,.14),transparent 34%),
      repeating-linear-gradient(90deg,rgba(229,220,150,.055) 0 1px,transparent 1px 54px),
      repeating-linear-gradient(0deg,transparent 0 34px,rgba(108,101,57,.12) 34px 36px),
      linear-gradient(180deg,#202015 0,#12150f 58%,#0c0f0b 100%)
  }
  body[data-app-view="chat"] .message-stage::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(105deg,rgba(3,4,3,.32) 0 15%,transparent 15% 82%,rgba(4,5,4,.28) 82% 100%),
      radial-gradient(ellipse at 50% 42%,transparent 0 18%,rgba(3,4,3,.38) 78%,rgba(0,0,0,.62) 100%);
    opacity:.72
  }
  body[data-app-view="chat"] .message-stream{
    position:relative;
    z-index:1;
    gap:7px;
    padding:12px 10px 14px;
    scrollbar-gutter:auto
  }
  body[data-app-view="chat"] .message{
    position:relative;
    max-width:calc(100% - 82px);
    margin:2px 40px;
    padding:9px 11px;
    border:1px solid rgba(166,177,148,.16);
    border-radius:6px;
    box-shadow:0 2px 8px rgba(0,0,0,.2);
    font-size:.94rem
  }
  body[data-app-view="chat"] .message.ai{
    align-self:flex-start;
    max-width:calc(100% - 82px);
    margin-left:40px;
    margin-right:auto;
    background:rgba(27,33,27,.78);
    color:var(--text)
  }
  body[data-app-view="chat"] .message.user{
    align-self:flex-end;
    max-width:calc(100% - 82px);
    margin-left:auto;
    margin-right:40px;
    border-color:#c5ad4e;
    background:linear-gradient(135deg,#efd66d,#dbc052);
    color:#282313
  }
  body[data-app-view="chat"] .message::before{
    position:absolute;
    top:0;
    display:grid;
    width:30px;
    height:30px;
    place-items:center;
    border-radius:6px;
    font-size:.68rem;
    font-weight:800;
    line-height:1;
    box-shadow:0 1px 2px rgba(0,0,0,.22)
  }
  body[data-app-view="chat"] .message.ai::before{
    content:"AI";
    left:-38px;
    border:1px solid rgba(166,177,148,.22);
    background:rgba(27,33,27,.95);
    color:#d8e6cf
  }
  body[data-app-view="chat"] .message.user::before{
    content:"你";
    right:-38px;
    border:1px solid rgba(197,173,78,.42);
    background:#d7c96a;
    color:#26210f
  }
  body[data-app-view="chat"] .message::after{
    content:"";
    position:absolute;
    top:11px;
    width:0;
    height:0;
    border-top:5px solid transparent;
    border-bottom:5px solid transparent
  }
  body[data-app-view="chat"] .message.ai::after{
    left:-6px;
    border-right:7px solid rgba(27,33,27,.78)
  }
  body[data-app-view="chat"] .message.user::after{
    right:-6px;
    border-left:7px solid #dbc052
  }
  body[data-app-view="chat"] .message-heading,
  body[data-app-view="chat"] .message-meta{display:none}
  body[data-app-view="chat"] .message-meta{display:none!important}
  body[data-app-view="chat"] .message p,
  body[data-app-view="chat"] .message-content{
    margin:0;
    line-height:1.58
  }
  body[data-app-view="chat"] .message-date-separator{
    justify-content:center;
    margin:9px 0;
    color:#959d90;
    font-size:.66rem
  }
  body[data-app-view="chat"] .message-date-separator::before,
  body[data-app-view="chat"] .message-date-separator::after{display:none}
  body[data-app-view="chat"] .message-date-separator span{
    padding:3px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.08)
  }
  body[data-app-view="chat"] .jump-latest{
    bottom:12px;
    width:34px;
    height:34px;
    background:rgba(238,240,231,.92);
    color:#273022
  }
  body[data-app-view="chat"] .chat-composer{
    grid-template-columns:minmax(0,1fr) 40px;
    align-items:end;
    gap:8px;
    margin:0;
    padding:8px 9px;
    border:0;
    border-top:1px solid rgba(166,177,148,.18);
    border-radius:0;
    background:linear-gradient(180deg,rgba(24,26,22,.98),rgba(13,15,12,.98));
    box-shadow:0 -8px 20px rgba(0,0,0,.24)
  }
  body[data-app-view="chat"] .chat-composer:focus-within{
    box-shadow:0 -8px 20px rgba(0,0,0,.28),0 0 0 1px rgba(183,227,155,.08) inset
  }
  body[data-app-view="chat"] .composer-input-shell{
    position:relative;
    display:grid;
    grid-template-columns:40px minmax(0,1fr);
    align-items:end;
    gap:8px;
    min-height:40px;
    min-width:0
  }
  body[data-app-view="chat"] .chat-composer.typing .composer-input-shell{
    grid-template-columns:minmax(0,1fr)
  }
  body[data-app-view="chat"] .chat-composer.typing .chat-attach-toggle{
    display:none!important
  }
  body[data-app-view="chat"] .chat-composer textarea{
    grid-column:2;
    grid-row:1;
    min-height:40px;
    max-height:96px;
    padding:8px 11px;
    border:1px solid rgba(166,177,148,.28);
    border-radius:12px;
    background:rgba(16,20,16,.96);
    color:var(--text);
    line-height:1.4;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)
  }
  body[data-app-view="chat"] .chat-composer.typing textarea{grid-column:1}
  body[data-app-view="chat"] .chat-composer button{
    width:40px;
    min-width:40px;
    height:40px;
    display:grid;
    place-items:center;
    align-self:end;
    padding:0;
    border:1px solid rgba(197,173,78,.32);
    border-radius:12px;
    background:rgba(44,42,25,.9);
    color:#eee59a;
    font-size:1.05rem;
    line-height:1
  }
  body[data-app-view="chat"] .composer-helper-row{
    display:none
  }
  body[data-app-view="chat"] .chat-composer.typing .composer-helper-row{display:none}
  body[data-app-view="chat"] .composer-helper-row.voice-unavailable{display:none}
  body[data-app-view="chat"] .chat-composer .voice-input-button{
    width:40px;
    min-width:40px;
    height:40px;
    padding:0;
    border:1px solid rgba(166,177,148,.28);
    border-radius:12px;
    background:rgba(16,20,16,.96);
    color:#c7d3c0;
    font-size:1rem;
    line-height:1.1
  }
  body[data-app-view="chat"] .chat-attach-panel{
    bottom:calc(100% + 10px);
    left:0;
    width:min(264px,calc(100vw - 84px));
    grid-template-columns:repeat(3,minmax(58px,1fr));
    gap:7px;
    padding:9px
  }
  body[data-app-view="chat"] .chat-attach-panel.voice-unavailable{
    grid-template-columns:repeat(2,minmax(58px,1fr))
  }
  body[data-app-view="chat"] .chat-attach-panel .chat-attach-option,
  body[data-app-view="chat"] .chat-attach-panel .voice-input-button{
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    min-height:62px;
    padding:7px 5px!important;
    border-radius:11px
  }
  body[data-app-view="chat"] .chat-attach-panel .voice-input-button svg{
    width:20px;
    height:20px
  }
  body[data-app-view="chat"] .chat-composer button svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-width:2
  }
  body[data-app-view="chat"] .chat-composer .voice-input-button.listening{
    border-color:#9c8d40;
    background:#f2e7ad;
    color:#5c5120
  }
  body[data-app-view="chat"] .voice-input-status{
    position:absolute;
    bottom:42px;
    left:0;
    max-width:calc(100vw - 96px);
    padding:4px 7px;
    border-radius:999px;
    background:rgba(38,42,31,.92);
    color:#68715f;
    font-size:.65rem;
    box-shadow:0 4px 16px rgba(0,0,0,.22)
  }
  body[data-app-view="chat"] .chat-attach-panel .voice-input-status{
    position:static;
    bottom:auto;
    left:auto;
    grid-column:1 / -1;
    max-width:100%;
    padding:2px 3px;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    text-align:center
  }
  body[data-app-view="chat"] .voice-input-status:not(:empty){
    color:#e6e7d8
  }
  body[data-app-view="chat"] .chat-status-row{
    position:absolute;
    right:8px;
    bottom:58px;
    left:8px;
    z-index:4;
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    gap:6px;
    padding:0;
    pointer-events:none
  }
  body[data-app-view="chat"] #chat-status{
    max-width:72%;
    min-height:0;
    margin:0;
    padding:4px 7px;
    border-radius:999px;
    background:rgba(10,12,9,.58);
    color:#c3cab9
  }
  body[data-app-view="chat"] #chat-status:not([data-status-kind="active"]):not([data-status-kind="error"]):not([data-status-kind="notice"]),
  body[data-app-view="chat"] #chat-status[data-status-kind="quiet"],
  body[data-app-view="chat"] #chat-status[hidden]{display:none!important}
  body[data-app-view="chat"] #chat-status[data-status-kind="error"]{
    background:rgba(83,31,26,.86);
    color:#ffe0d9
  }
  body[data-app-view="chat"] #chat-status[data-status-kind="active"]{
    background:rgba(50,53,31,.86);
    color:#f0e9b7
  }
  body[data-app-view="chat"] #chat-status:empty{display:none}
  body[data-app-view="chat"] .chat-actions{
    flex:0 1 auto;
    pointer-events:auto
  }
  body[data-app-view="chat"] .chat-actions:empty{display:none}
  body[data-app-view="chat"] .chat-actions button{
    min-height:30px;
    border-radius:999px;
    background:rgba(26,29,23,.88);
    color:#eef0e7
  }
}

/* Mobile fixed nav hardening: keep the four primary tabs above every scrollable page. */
@media(max-width:700px){
  header.app-header{
    z-index:2200
  }
  .app-nav{
    position:fixed!important;
    inset:auto 0 0 0!important;
    z-index:2400!important;
    display:flex!important;
    width:100vw!important;
    max-width:none!important;
    margin:0!important;
    transform:translateZ(0);
    pointer-events:auto;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent
  }
  .app-nav button{
    touch-action:manipulation;
    user-select:none
  }
  main{
    padding-bottom:calc(var(--mobile-tab-height) + env(safe-area-inset-bottom,0) + 18px)
  }
  body[data-app-view="chat"] main{
    padding-bottom:0
  }
  .today-view,
  .workspace-grid.view-ai-space,
  .workspace-grid.view-workbench{
    padding-bottom:calc(var(--mobile-tab-height) + env(safe-area-inset-bottom,0) + 26px)
  }
}
/* Project work checkpoints remain separate from the personal memory list. */
#work-archive-dialog { width: min(760px, 92vw); max-height: 88dvh; overflow-y: auto; }
#work-archive-dialog::backdrop { background: rgb(0 0 0 / 40%); }
#work-archive-detail form, #work-archive-detail fieldset { display: grid; gap: 12px; }
#work-archive-detail fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
#work-archive-detail label { display: grid; gap: 4px; }
#work-archive-detail textarea { min-height: 90px; width: 100%; box-sizing: border-box; }
#work-archive-detail input, #work-archive-detail select { width: 100%; box-sizing: border-box; }
