:root{--font-sans: -apple-system, "SF Pro Text", system-ui, sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.5rem;--leading-tight: 1.2;--leading-normal: 1.5;--leading-relaxed: 1.7;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.25, .46, .45, .94);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--border-hairline: .5px solid;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 8px rgba(0, 0, 0, .06);--color-bg: #ffffff;--color-bg-secondary: #f5f5f7;--color-bg-tertiary: #e8e8ed;--color-text: #1d1d1f;--color-text-secondary: #6e6e73;--color-text-tertiary: #aeaeb2;--color-accent: #0071e3;--color-accent-hover: #0066cc;--color-accent-soft: rgba(0, 113, 227, .1);--color-border: #d2d2d7;--color-border-subtle: #e5e5ea;--color-success: #30d158;--color-warning: #ff9f0a;--color-error: #ff453a;--color-card-bg: #ffffff;--color-card-border: #e5e5ea;--color-user-bubble: #0071e3;--color-user-bubble-text: #ffffff;--color-assistant-text: #1d1d1f;--sidebar-width: 280px;--top-bar-height: 52px;--tab-bar-height: 56px;--input-bar-height: auto}@media(prefers-color-scheme:dark){:root{--color-bg: #000000;--color-bg-secondary: #1c1c1e;--color-bg-tertiary: #2c2c2e;--color-text: #f5f5f7;--color-text-secondary: #98989d;--color-text-tertiary: #636366;--color-accent: #0a84ff;--color-accent-hover: #409cff;--color-accent-soft: rgba(10, 132, 255, .15);--color-border: #38383a;--color-border-subtle: #2c2c2e;--color-card-bg: #1c1c1e;--color-card-border: #38383a;--color-user-bubble: #0a84ff;--color-user-bubble-text: #ffffff;--color-assistant-text: #f5f5f7}}[data-color-scheme=dark]{--color-bg: #000000;--color-bg-secondary: #1c1c1e;--color-bg-tertiary: #2c2c2e;--color-text: #f5f5f7;--color-text-secondary: #98989d;--color-text-tertiary: #636366;--color-accent: #0a84ff;--color-accent-hover: #409cff;--color-accent-soft: rgba(10, 132, 255, .15);--color-border: #38383a;--color-border-subtle: #2c2c2e;--color-card-bg: #1c1c1e;--color-card-border: #38383a;--color-user-bubble: #0a84ff;--color-user-bubble-text: #ffffff;--color-assistant-text: #f5f5f7}[data-color-scheme=light]{--color-bg: #ffffff;--color-bg-secondary: #f5f5f7;--color-bg-tertiary: #e8e8ed;--color-text: #1d1d1f;--color-text-secondary: #6e6e73;--color-text-tertiary: #aeaeb2;--color-accent: #0071e3;--color-accent-hover: #0066cc;--color-accent-soft: rgba(0, 113, 227, .1);--color-border: #d2d2d7;--color-border-subtle: #e5e5ea;--color-card-bg: #ffffff;--color-card-border: #e5e5ea;--color-user-bubble: #0071e3;--color-user-bubble-text: #ffffff;--color-assistant-text: #1d1d1f}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);min-height:100dvh;overflow:hidden}#app{height:100dvh}h1,h2,h3,h4,h5,h6{font-weight:var(--weight-semibold);line-height:var(--leading-tight);color:var(--color-text)}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}p{color:var(--color-text-secondary);line-height:var(--leading-relaxed)}:lang(en){text-transform:none}a{color:var(--color-accent);text-decoration:none;transition:color var(--duration-fast) var(--ease-spring)}a:hover{color:var(--color-accent-hover)}a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}button,.btn{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);border:var(--border-hairline) var(--color-border);background:var(--color-bg);color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-spring);display:inline-flex;align-items:center;gap:var(--space-xs);-webkit-user-select:none;user-select:none}button:hover,.btn:hover{background:var(--color-bg-secondary)}button:focus-visible,.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}input,textarea,select{font-family:var(--font-sans);font-size:var(--text-base);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:var(--border-hairline) var(--color-border);background:var(--color-bg);color:var(--color-text);width:100%;transition:border-color var(--duration-fast) var(--ease-spring)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.app-shell{display:flex;height:100dvh;overflow:hidden}.app-main{flex:1;display:flex;flex-direction:column;min-width:0;height:100dvh;overflow:hidden}.sidebar{display:none;width:var(--sidebar-width);min-width:var(--sidebar-width);height:100dvh;border-right:var(--border-hairline) var(--color-border);background:var(--color-bg-secondary);flex-direction:column;overflow:hidden}.sidebar-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-bottom:var(--border-hairline) var(--color-border-subtle)}.sidebar-logo{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:var(--weight-bold)}.sidebar-brand{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.sidebar-nav{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-sm);border-bottom:var(--border-hairline) var(--color-border-subtle)}.sidebar-nav-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);width:100%;text-align:left;cursor:pointer;transition:all var(--duration-fast) var(--ease-spring)}.sidebar-nav-item:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.sidebar-nav-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.sidebar-nav-item--active,.sidebar-nav-item--active:hover{background:var(--color-accent-soft);color:var(--color-accent)}.sidebar-conversations{flex:1;overflow-y:auto;padding:var(--space-sm) 0}@media(min-width:768px){.sidebar{display:flex}}.tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--tab-bar-height);background:var(--color-bg);border-top:var(--border-hairline) var(--color-border);z-index:100;padding-bottom:env(safe-area-inset-bottom,0)}.tab-bar-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-xs) 0;border:none;border-radius:0;background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:color var(--duration-fast) var(--ease-spring);-webkit-tap-highlight-color:transparent}.tab-bar-item:hover{background:transparent;color:var(--color-text-secondary)}.tab-bar-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.tab-bar-item--active,.tab-bar-item--active:hover{color:var(--color-accent)}.tab-bar-label{font-size:10px;font-weight:var(--weight-medium);letter-spacing:.01em}@media(min-width:768px){.tab-bar{display:none}}.top-bar{display:flex;align-items:center;justify-content:space-between;height:var(--top-bar-height);min-height:var(--top-bar-height);padding:0 var(--space-md);border-bottom:var(--border-hairline) var(--color-border-subtle);background:var(--color-bg);position:relative;z-index:10}.top-bar-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.top-bar-action{width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-accent);cursor:pointer;transition:background var(--duration-fast) var(--ease-spring)}.top-bar-action:hover{background:var(--color-accent-soft)}.top-bar-action:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.chat-layout{display:flex;flex-direction:column;height:100%;overflow:hidden}.chat-view{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-scroll{flex:1;overflow-y:auto;padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md);scroll-behavior:smooth}.message{display:flex;max-width:85%;animation:message-enter .25s var(--ease-spring)}@keyframes message-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message--user{align-self:flex-end}.message--assistant{align-self:flex-start}.message-bubble{background:var(--color-user-bubble);color:var(--color-user-bubble-text);border-radius:var(--radius-lg) var(--radius-sm) var(--radius-lg) var(--radius-lg);padding:var(--space-sm) var(--space-md);max-width:100%}.message-bubble .message-text{color:inherit;font-size:var(--text-sm);line-height:var(--leading-relaxed);white-space:pre-wrap;word-break:break-word}.message-prose{padding:var(--space-xs) 0}.message-prose .message-text{color:var(--color-assistant-text);font-size:var(--text-sm);line-height:var(--leading-relaxed);white-space:pre-wrap;word-break:break-word;margin-bottom:var(--space-xs)}.message-prose .message-text:last-child{margin-bottom:0}.message-prose code{font-family:var(--font-mono);font-size:.8125rem;background:var(--color-bg-secondary);padding:1px 4px;border-radius:4px;border:var(--border-hairline) var(--color-border-subtle)}.message-prose pre{background:var(--color-bg-secondary);border:var(--border-hairline) var(--color-border-subtle);border-radius:var(--radius-sm);padding:var(--space-md);overflow-x:auto;margin:var(--space-sm) 0}.message-prose pre code{background:none;border:none;padding:0}.message-time{display:block;font-size:11px;opacity:.7;margin-top:2px;color:inherit}.chat-input{display:flex;align-items:flex-end;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);padding-bottom:calc(var(--space-sm) + env(safe-area-inset-bottom,0));border-top:var(--border-hairline) var(--color-border-subtle);background:var(--color-bg)}.chat-input-field{flex:1;resize:none;max-height:200px;padding:10px var(--space-md);border-radius:var(--radius-lg);border:var(--border-hairline) var(--color-border);background:var(--color-bg-secondary);color:var(--color-text);font-size:var(--text-sm);line-height:1.4;transition:border-color var(--duration-fast) var(--ease-spring);min-height:40px}.chat-input-field:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);background:var(--color-bg)}.chat-input-field::placeholder{color:var(--color-text-tertiary)}.chat-input-btn{width:40px;height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--duration-fast) var(--ease-spring)}.chat-input-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.chat-input-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.chat-input-btn:disabled{opacity:.4;cursor:not-allowed}.chat-input-send{color:var(--color-accent)}.chat-input-send:hover{background:var(--color-accent-soft);color:var(--color-accent)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-3xl) var(--space-lg);flex:1;gap:var(--space-lg)}.empty-state-icon{color:var(--color-accent);opacity:.8}.empty-state-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text)}.empty-state-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:340px;line-height:var(--leading-relaxed)}.empty-state-prompts{display:flex;flex-direction:column;gap:var(--space-sm);align-items:center;margin-top:var(--space-md)}.empty-state-label{font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--weight-medium)}.empty-state-grid{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center;max-width:400px}.empty-state-chip{font-size:var(--text-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);border:var(--border-hairline) var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-spring);white-space:nowrap}.empty-state-chip:hover{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}.empty-state-chip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.convo-list{display:flex;flex-direction:column}.convo-list-header{padding:var(--space-sm) var(--space-lg) var(--space-xs)}.convo-list-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);font-weight:var(--weight-medium)}.convo-list-empty{padding:var(--space-lg);text-align:center;color:var(--color-text-tertiary);font-size:var(--text-sm)}.convo-list-loader{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md) var(--space-lg)}.convo-loader-row{display:flex;flex-direction:column;gap:6px;padding:var(--space-xs) 0}.convo-loader-line{height:12px;border-radius:6px;background:var(--color-bg-tertiary);animation:convo-loader-pulse 1.5s ease-in-out infinite}.convo-loader-line--short{width:60%}.convo-loader-line--long{width:85%}@keyframes convo-loader-pulse{0%,to{opacity:.4}50%{opacity:.8}}.convo-row{display:flex;align-items:flex-start;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-lg);border:none;border-radius:0;background:transparent;color:var(--color-text);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease-spring)}.convo-row:hover{background:var(--color-bg-tertiary)}.convo-row:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.convo-row--active,.convo-row--active:hover{background:var(--color-accent-soft)}.convo-row-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.convo-row-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.convo-row-preview{font-size:var(--text-xs);color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.convo-row-time{font-size:11px;color:var(--color-text-tertiary);white-space:nowrap;flex-shrink:0;padding-top:1px}.screen-header{padding:var(--space-lg) var(--space-lg) var(--space-sm);border-bottom:var(--border-hairline) var(--color-border-subtle)}.screen-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text)}.screen-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-xs)}.screen-insights,.screen-settings{height:100%;overflow-y:auto;padding-bottom:var(--space-3xl)}.insights-placeholder{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg)}.insight-card{background:var(--color-card-bg);border:var(--border-hairline) var(--color-card-border);border-radius:var(--radius-md);padding:var(--space-lg);transition:border-color var(--duration-normal) var(--ease-spring)}.insight-card:hover{border-color:var(--color-border)}.insight-card-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);margin-bottom:var(--space-sm)}.insight-card-body{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.settings-section{margin-top:var(--space-lg)}.settings-section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);font-weight:var(--weight-medium);padding:0 var(--space-lg) var(--space-sm)}.settings-section-body{background:var(--color-card-bg);border-top:var(--border-hairline) var(--color-card-border);border-bottom:var(--border-hairline) var(--color-card-border)}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:var(--border-hairline) var(--color-border-subtle);text-decoration:none;color:var(--color-text);transition:background var(--duration-fast) var(--ease-out);min-height:44px}.settings-row:last-child,.settings-row--last{border-bottom:none}a.settings-row:hover{background:var(--color-bg-secondary);color:var(--color-text)}.settings-row-label{font-size:var(--text-sm);color:var(--color-text)}.settings-row-value{display:flex;align-items:center;gap:var(--space-xs);color:var(--color-text-tertiary);font-size:var(--text-sm)}.settings-row-value-text{color:var(--color-text-tertiary);font-size:var(--text-sm)}.settings-chevron{color:var(--color-text-tertiary);opacity:.5}.settings-toggle{display:inline-flex;align-items:center;border:none;background:transparent;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.settings-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:var(--radius-full)}.settings-toggle-track{width:48px;height:28px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);border:var(--border-hairline) var(--color-border);position:relative;transition:background var(--duration-fast) var(--ease-out)}.settings-toggle[aria-checked=true] .settings-toggle-track{background:var(--color-accent);border-color:var(--color-accent)}.settings-toggle-thumb{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000026;transition:transform var(--duration-fast) var(--ease-out)}.settings-toggle[aria-checked=true] .settings-toggle-thumb{transform:translate(20px)}.settings-segment{display:flex;gap:2px;background:var(--color-bg-secondary);border-radius:var(--radius-sm);padding:2px}.settings-segment-btn{font-size:var(--text-xs);padding:4px 10px;border:none;border-radius:6px;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);font-weight:var(--weight-medium)}.settings-segment-btn:hover{color:var(--color-text)}.settings-segment-btn--active{background:var(--color-bg);color:var(--color-text);box-shadow:var(--shadow-sm)}.settings-row--action{cursor:pointer}.settings-row--action:hover{background:var(--color-bg-secondary)}.settings-row--action:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.settings-row-label--danger{color:var(--color-error)}.settings-input{font-family:var(--font-sans);font-size:var(--text-sm);padding:6px 10px;border:var(--border-hairline) var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text);outline:none;width:120px;transition:border-color var(--duration-fast) var(--ease-out)}.settings-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-soft)}.settings-input--inline{flex:1;min-width:0;width:auto}.settings-btn{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:5px 12px;border:var(--border-hairline) var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap}.settings-btn:hover{background:var(--color-bg-tertiary)}.settings-btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.settings-btn--primary:hover{background:var(--color-accent-hover)}.settings-btn--danger{background:var(--color-error);border-color:var(--color-error);color:#fff}.settings-btn--danger:hover{opacity:.85}.settings-btn--danger-outline{background:transparent;border-color:var(--color-error);color:var(--color-error)}.settings-btn--danger-outline:hover{background:#ff453a14}.settings-btn--icon{display:flex;align-items:center;justify-content:center;padding:6px;border:none;background:transparent;color:var(--color-text-tertiary);border-radius:var(--radius-sm)}.settings-btn--icon:hover{background:var(--color-bg-tertiary);color:var(--color-error)}.settings-btn--add{background:transparent;border-color:var(--color-accent);color:var(--color-accent);font-size:var(--text-xs)}.settings-btn--add:hover{background:var(--color-accent-soft)}.settings-memory-list{border-top:var(--border-hairline) var(--color-border-subtle)}.settings-memory-content{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.settings-memory-text{font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.settings-memory-date{font-size:var(--text-xs);color:var(--color-text-tertiary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.text-center{text-align:center}.text-secondary{color:var(--color-text-secondary)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-lg{margin-bottom:var(--space-lg)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.status-shimmer{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;align-self:flex-start;max-width:85%}.status-shimmer-dot{font-size:8px;color:var(--color-accent);animation:shimmer-dot-pulse 1.4s ease-in-out infinite}@keyframes shimmer-dot-pulse{0%,to{opacity:.3}50%{opacity:1}}.status-shimmer-text{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:var(--weight-medium);background:linear-gradient(90deg,var(--color-text-secondary) 0%,var(--color-text) 40%,var(--color-text-secondary) 70%,var(--color-text-secondary) 100%);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer-sweep 2.5s ease-in-out infinite}@keyframes shimmer-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.message-markdown{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-assistant-text);word-break:break-word}.message-markdown h1,.message-markdown h2,.message-markdown h3,.message-markdown h4{margin-top:var(--space-md);margin-bottom:var(--space-sm);color:var(--color-text)}.message-markdown h1{font-size:var(--text-lg);font-weight:var(--weight-bold)}.message-markdown h2{font-size:var(--text-base);font-weight:var(--weight-semibold)}.message-markdown h3{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.message-markdown h4{font-size:var(--text-sm);font-weight:var(--weight-medium)}.message-markdown p{margin-bottom:var(--space-sm);color:var(--color-assistant-text);line-height:var(--leading-relaxed)}.message-markdown p:last-child{margin-bottom:0}.message-markdown strong{font-weight:var(--weight-semibold);color:var(--color-text)}.message-markdown em{font-style:italic}.message-markdown code{font-family:var(--font-mono);font-size:.8125rem;background:var(--color-bg-secondary);padding:1px 5px;border-radius:4px;border:var(--border-hairline) var(--color-border-subtle);color:var(--color-text)}.message-markdown pre{background:var(--color-bg-secondary);border:var(--border-hairline) var(--color-border-subtle);border-radius:var(--radius-sm);padding:var(--space-md);overflow-x:auto;margin:var(--space-sm) 0 var(--space-md)}.message-markdown pre code{background:none;border:none;padding:0;font-size:.8125rem;line-height:1.6}.message-markdown .hljs-keyword{color:var(--color-accent);font-weight:var(--weight-medium)}.message-markdown .hljs-string{color:var(--color-success)}.message-markdown .hljs-number{color:var(--color-warning)}.message-markdown .hljs-comment{color:var(--color-text-tertiary);font-style:italic}.message-markdown .hljs-type{color:#6c47ff}[data-color-scheme=dark] .message-markdown .hljs-type{color:#9b7eff}.message-markdown ul,.message-markdown ol{margin:var(--space-sm) 0;padding-left:var(--space-lg);color:var(--color-assistant-text)}.message-markdown li{margin-bottom:var(--space-xs);line-height:var(--leading-relaxed)}.message-markdown li:last-child{margin-bottom:0}.message-markdown blockquote{margin:var(--space-sm) 0;padding:var(--space-xs) var(--space-md);border-left:3px solid var(--color-accent);color:var(--color-text-secondary);background:var(--color-accent-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.message-markdown table{width:100%;border-collapse:collapse;margin:var(--space-sm) 0 var(--space-md);font-size:var(--text-sm)}.message-markdown th,.message-markdown td{padding:var(--space-xs) var(--space-sm);border:var(--border-hairline) var(--color-border-subtle);text-align:left;line-height:var(--leading-normal)}.message-markdown th{background:var(--color-bg-secondary);font-weight:var(--weight-semibold);color:var(--color-text)}.message-markdown td{color:var(--color-assistant-text)}.message-markdown hr{border:none;border-top:var(--border-hairline) var(--color-border);margin:var(--space-md) 0}.message-markdown a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.message-markdown a:hover{color:var(--color-accent-hover)}.message-markdown img{max-width:100%;border-radius:var(--radius-sm);margin:var(--space-sm) 0}.message-cursor{display:inline-block;font-size:var(--text-sm);color:var(--color-accent);opacity:.6;animation:cursor-blink 1s step-end infinite;margin-left:1px;line-height:1;vertical-align:middle}@keyframes cursor-blink{0%,to{opacity:.6}50%{opacity:0}}.chat-error{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#ff453a14;border:var(--border-hairline) rgba(255,69,58,.25);border-radius:var(--radius-sm);align-self:center;max-width:90%;margin:var(--space-sm) 0;animation:message-enter .25s var(--ease-spring)}.chat-error-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-error);color:#fff;font-size:11px;font-weight:var(--weight-bold);flex-shrink:0}.chat-error span:not(.chat-error-icon){font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.chat-error-retry{font-size:var(--text-xs);padding:4px 10px;border-radius:var(--radius-full);border:var(--border-hairline) var(--color-error);background:transparent;color:var(--color-error);cursor:pointer;font-weight:var(--weight-medium);flex-shrink:0;transition:all var(--duration-fast) var(--ease-out)}.chat-error-retry:hover{background:#ff453a1a}.chat-scroll-anchor{height:1px;flex-shrink:0}.insights-content{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md) var(--space-lg) var(--space-3xl)}.insights-loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-3xl) var(--space-lg);color:var(--color-text-secondary);font-size:var(--text-sm)}.insight-stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}@media(min-width:768px){.insight-stats-row{grid-template-columns:repeat(4,1fr)}}.insight-stat-card{background:var(--color-card-bg);border:var(--border-hairline) var(--color-card-border);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:2px;text-align:center}.insight-stat-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:1.1}.insight-stat-title{font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--weight-medium)}.insight-stat-subtitle{font-size:11px;color:var(--color-text-tertiary)}.chart-bars{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.chart-bar-row{display:flex;align-items:center;gap:var(--space-sm);min-height:28px}.chart-bar-label{font-size:var(--text-xs);color:var(--color-text-secondary);width:48px;flex-shrink:0;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-bar-track{flex:1;height:20px;background:var(--color-bg-secondary);border-radius:var(--radius-sm);overflow:hidden;min-width:0}.chart-bar-fill{height:100%;border-radius:var(--radius-sm);transition:width .6s var(--ease-spring);min-width:4px}.chart-bar-value{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:var(--weight-medium);width:40px;flex-shrink:0;font-variant-numeric:tabular-nums}.budget-list{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-sm)}.budget-row-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.budget-category{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);text-transform:capitalize}.budget-amount{font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.task-mini-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.task-mini-row{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm)}.task-priority-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.task-priority-urgent{background-color:var(--color-error)}.task-priority-high{background-color:var(--color-warning)}.task-priority-medium{background-color:var(--color-accent)}.task-priority-low{background-color:var(--color-text-tertiary)}.task-mini-title{flex:1;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-mini-due{font-size:var(--text-xs);color:var(--color-text-tertiary);flex-shrink:0}.study-mini-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.study-mini-row{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-sm)}.study-topic{color:var(--color-text);font-weight:var(--weight-medium)}.study-duration{color:var(--color-text-secondary);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.auth-gate{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:var(--space-lg);background:var(--color-bg)}.auth-card{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);padding:var(--space-2xl) var(--space-lg);background:var(--color-card-bg);border:var(--border-hairline) var(--color-card-border);border-radius:var(--radius-lg);text-align:center}.auth-logo{width:56px;height:56px;border-radius:var(--radius-md);background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:var(--weight-bold)}.auth-title{font-size:var(--text-2xl);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.auth-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.auth-form{width:100%;display:flex;flex-direction:column;gap:var(--space-md)}.auth-label{font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center;line-height:var(--leading-relaxed)}.auth-input{text-align:center;font-size:var(--text-lg);padding:var(--space-md);border-radius:var(--radius-md);border:var(--border-hairline) var(--color-border);background:var(--color-bg-secondary);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-spring)}.auth-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);background:var(--color-bg)}.auth-input--otp{font-size:var(--text-xl);letter-spacing:.3em;font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.auth-error{font-size:var(--text-sm);color:var(--color-error);margin:0;text-align:center}.auth-btn{width:100%;padding:var(--space-md);font-size:var(--text-base);font-weight:var(--weight-medium);border-radius:var(--radius-md);border:none;background:var(--color-accent);color:#fff;cursor:pointer;transition:opacity var(--duration-fast) var(--ease-out)}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-btn:hover:not(:disabled){opacity:.9}.auth-link{background:none;border:none;color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;padding:var(--space-xs);text-decoration:none;transition:opacity var(--duration-fast) var(--ease-spring)}.auth-link:hover{opacity:.8}.auth-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.auth-link:disabled{opacity:.4;cursor:not-allowed}.auth-resend-timer{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0;text-align:center}.auth-spinner{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.chat-layout-row{display:flex;flex:1;overflow:hidden;height:100%}.chat-thread{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}.artifact-panel{width:320px;min-width:320px;border-left:var(--border-hairline) var(--color-border);background:var(--color-bg);display:flex;flex-direction:column;overflow:hidden;animation:artifact-panel-slide .2s var(--ease-spring)}@keyframes artifact-panel-slide{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:767px){.artifact-panel{display:none}}.artifact-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:var(--border-hairline) var(--color-border-subtle);min-height:var(--top-bar-height)}.artifact-panel-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.artifact-panel-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-spring)}.artifact-panel-close:hover{background:var(--color-bg-secondary)}.artifact-panel-close:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.artifact-panel-body{flex:1;overflow-y:auto;padding:var(--space-sm) 0}.artifact-panel-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-3xl) var(--space-lg);text-align:center;font-size:var(--text-sm);color:var(--color-text-tertiary)}.artifact-list{display:flex;flex-direction:column}.artifact-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);transition:background var(--duration-fast) var(--ease-out);cursor:default}.artifact-row:hover{background:var(--color-bg-secondary)}.artifact-row-icon{font-size:1.3rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.artifact-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.artifact-row-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artifact-row-meta{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-text-tertiary)}.artifact-row-type{text-transform:uppercase;letter-spacing:.04em;font-weight:var(--weight-medium)}.artifact-row-sep{opacity:.5}.artifact-row-size,.artifact-row-time{font-variant-numeric:tabular-nums}.notification-banner{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:var(--border-hairline) var(--color-border);background:var(--color-bg-secondary);animation:notification-slide-in .3s var(--ease-spring);position:relative;z-index:50}@keyframes notification-slide-in{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.notification-banner-icon{font-size:1.3rem;flex-shrink:0;padding-top:2px}.notification-banner-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notification-banner-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);line-height:var(--leading-tight)}.notification-banner-text{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:var(--leading-normal);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.notification-banner-count{font-size:11px;color:var(--color-accent);font-weight:var(--weight-medium);margin-top:2px}.notification-banner-actions{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.notification-banner-dismiss{width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--duration-fast) var(--ease-spring)}.notification-banner-dismiss:hover{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.notification-banner-dismiss:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.notification-banner-dismiss-all{font-size:var(--text-xs);padding:3px 8px;border-radius:var(--radius-full);border:var(--border-hairline) var(--color-border);background:transparent;color:var(--color-text-tertiary);cursor:pointer;font-weight:var(--weight-medium);transition:all var(--duration-fast) var(--ease-spring);white-space:nowrap}.notification-banner-dismiss-all:hover{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.notification-banner-dismiss-all:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.notification-banner--briefing{border-left:3px solid var(--color-warning)}.notification-banner--winddown{border-left:3px solid #6c47ff}[data-color-scheme=dark] .notification-banner--winddown{border-left-color:#9b7eff}.notification-banner--reflection{border-left:3px solid var(--color-accent)}.artifact-row-download{width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-accent);cursor:pointer;transition:background var(--duration-fast) var(--ease-spring);flex-shrink:0;opacity:0}.artifact-row:hover .artifact-row-download{opacity:1}.artifact-row-download:hover{background:var(--color-accent-soft)}.artifact-row-download:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;opacity:1}.artifact-row-download:disabled{opacity:.3;cursor:not-allowed}.artifact-detail{display:flex;flex-direction:column;height:100%}.artifact-detail-back{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);border:none;background:transparent;color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--duration-fast) var(--ease-spring)}.artifact-detail-back:hover{background:var(--color-accent-soft)}.artifact-detail-back:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.artifact-detail-preview{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl) var(--space-lg);text-align:center}.artifact-detail-icon{font-size:2.5rem}.artifact-detail-name{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);margin:0;word-break:break-word}.artifact-detail-meta{display:flex;flex-wrap:wrap;gap:var(--space-xs);justify-content:center}.artifact-detail-badge{font-size:11px;padding:3px 8px;border-radius:var(--radius-full);background:var(--color-bg-secondary);border:var(--border-hairline) var(--color-border-subtle);color:var(--color-text-secondary);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:.04em}.artifact-detail-download{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm)}.artifact-detail-image-container{width:100%;max-height:240px;overflow:hidden;border-radius:var(--radius-sm);background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center}.artifact-detail-image{max-width:100%;max-height:240px;object-fit:contain;border-radius:var(--radius-sm)}.settings-loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-3xl) var(--space-lg);color:var(--color-text-secondary);font-size:var(--text-sm)}
