:root{--gray-950: #0b0d10;--gray-900: #12151a;--gray-850: #171b21;--gray-800: #1e232b;--gray-700: #2b323c;--gray-600: #3d4653;--gray-500: #5b6572;--gray-400: #8791a0;--gray-300: #b4bcc7;--gray-200: #d3d8de;--gray-100: #e7e9ed;--gray-50: #f3f4f2;--white: #ffffff;--amber-300: #efc488;--amber-400: #e0a458;--amber-500: #c98a3a;--amber-600: #a8702c;--red-300: #f2989c;--red-400: #e5484d;--red-500: #c53539;--green-300: #9bd6b6;--green-400: #4caf7d;--green-500: #379764;--blue-300: #a9c6ea;--blue-400: #6fa0d8;--font-manrope: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1.0625rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.5rem;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--leading-tight: 1.15;--leading-snug: 1.35;--leading-normal: 1.55;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .24);--shadow-md: 0 4px 16px rgba(0, 0, 0, .32);--duration-fast: .12s;--duration-base: .2s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--color-bg: var(--gray-950);--color-bg-raised: var(--gray-900);--color-surface: var(--gray-850);--color-surface-raised: var(--gray-800);--color-border: var(--gray-700);--color-border-subtle: var(--gray-800);--color-text: var(--gray-100);--color-text-muted: var(--gray-400);--color-text-faint: var(--gray-500);--color-accent: var(--amber-400);--color-accent-hover: var(--amber-300);--color-accent-active: var(--amber-500);--color-accent-fg: var(--gray-950);--color-danger: var(--red-400);--color-danger-fg: var(--gray-950);--color-success: var(--green-400);--color-info: var(--blue-400);--color-focus-ring: var(--amber-400)}:root[data-theme=light]{--color-bg: var(--gray-50);--color-bg-raised: var(--white);--color-surface: var(--white);--color-surface-raised: var(--gray-100);--color-border: var(--gray-200);--color-border-subtle: var(--gray-100);--color-text: var(--gray-900);--color-text-muted: var(--gray-600);--color-text-faint: var(--gray-500);--color-accent: var(--amber-600);--color-accent-hover: var(--amber-500);--color-accent-active: var(--amber-600);--color-accent-fg: var(--white);--color-danger: var(--red-500);--color-danger-fg: var(--white);--color-success: var(--green-500);--color-info: var(--blue-400)}:root{--button-height: 44px;--button-radius: var(--radius-md);--button-primary-bg: var(--color-accent);--button-primary-bg-hover: var(--color-accent-hover);--button-primary-fg: var(--color-accent-fg);--button-secondary-bg: var(--color-surface-raised);--button-secondary-fg: var(--color-text);--button-secondary-border: var(--color-border);--input-bg: var(--color-surface);--input-border: var(--color-border);--input-border-focus: var(--color-accent);--input-radius: var(--radius-md);--input-height: 46px;--card-bg: var(--color-surface);--card-border: var(--color-border-subtle);--card-radius: var(--radius-lg);--card-padding: var(--space-5);--nav-bg: var(--color-bg-raised);--nav-border: var(--color-border-subtle);--nav-item-fg: var(--color-text-muted);--nav-item-fg-active: var(--color-accent);--bubble-user-bg: var(--color-accent);--bubble-user-fg: var(--color-accent-fg);--bubble-assistant-bg: var(--color-surface);--bubble-assistant-fg: var(--color-text);--bubble-radius: var(--radius-lg);--bubble-tag-info: var(--color-info);--bubble-tag-suggestion: var(--color-accent);--bubble-tag-action: var(--color-success);--bubble-tag-error: var(--color-danger);--voice-button-size: 56px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-manrope);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}button,input,textarea{font-family:inherit;color:inherit}button{cursor:pointer}a{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.error-banner{display:flex;align-items:flex-start;gap:var(--space-2);background:color-mix(in srgb,var(--color-danger) 14%,var(--color-surface));border:1px solid var(--color-danger);color:var(--color-text);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}.loading-dots{display:inline-flex;gap:4px}.loading-dots span{width:6px;height:6px;border-radius:var(--radius-full);background:var(--color-text-faint);animation:loading-blink 1.1s infinite ease-in-out both}.loading-dots span:nth-child(2){animation-delay:.15s}.loading-dots span:nth-child(3){animation-delay:.3s}@keyframes loading-blink{0%,80%,to{opacity:.25;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--button-height);padding:0 var(--space-5);border-radius:var(--button-radius);border:1px solid transparent;font-size:var(--text-base);font-weight:var(--weight-semibold);transition:background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),opacity var(--duration-fast);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--button-primary-bg);color:var(--button-primary-fg)}.btn-primary:hover:not(:disabled){background:var(--button-primary-bg-hover)}.btn-secondary{background:var(--button-secondary-bg);color:var(--button-secondary-fg);border-color:var(--button-secondary-border)}.btn-secondary:hover:not(:disabled){border-color:var(--color-text-muted)}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--weight-medium)}.field input,.field select{height:var(--input-height);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);padding:0 var(--space-4);font-size:var(--text-md)}.field input:focus-visible,.field select:focus-visible{border-color:var(--input-border-focus)}.auth-screen{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6)}.auth-card{width:100%;max-width:380px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--card-radius);padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}.auth-brand{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-2)}.auth-brand .mark{width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-accent);margin-bottom:var(--space-3)}.auth-brand h1{font-size:var(--text-xl);font-weight:var(--weight-extrabold);letter-spacing:-.01em}.auth-brand p{color:var(--color-text-muted);font-size:var(--text-sm)}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.auth-mode-toggle{display:flex;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted)}.auth-mode-toggle button{background:none;border:none;padding:0;color:var(--color-accent);font-weight:var(--weight-semibold)}.app-shell{display:flex;flex-direction:column;height:100%}.app-main{flex:1;min-height:0;display:flex;flex-direction:column}.app-nav{order:2;display:flex;background:var(--nav-bg);border-top:1px solid var(--nav-border);padding:var(--space-1) var(--space-2);padding-bottom:max(var(--space-1),env(safe-area-inset-bottom))}.app-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2) 0;font-size:11px;font-weight:var(--weight-medium);color:var(--nav-item-fg);text-decoration:none;border-radius:var(--radius-sm)}.app-nav a .nav-dot{width:6px;height:6px;border-radius:var(--radius-full);background:transparent}.app-nav a.active{color:var(--nav-item-fg-active)}.app-nav a.active .nav-dot{background:var(--nav-item-fg-active)}.app-topbar{order:1;display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.app-topbar h1{font-size:var(--text-lg);font-weight:var(--weight-bold)}.app-topbar .signout{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-sm)}@media(min-width:900px){.app-shell{flex-direction:row}.app-nav{order:0;flex-direction:column;width:208px;border-top:none;border-right:1px solid var(--nav-border);padding:var(--space-5) var(--space-3);gap:var(--space-1)}.app-nav a{flex-direction:row;justify-content:flex-start;gap:var(--space-3);padding:var(--space-3);font-size:var(--text-sm)}.app-main{order:1}}.stub-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-8);text-align:center;color:var(--color-text-muted)}.stub-screen h2{color:var(--color-text);font-size:var(--text-lg);font-weight:var(--weight-bold)}.chat-screen{flex:1;display:flex;flex-direction:column;min-height:0}.chat-history{flex:1;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);text-align:center;color:var(--color-text-muted);padding:var(--space-8)}.chat-empty h2{color:var(--color-text);font-size:var(--text-lg)}.chat-row{display:flex;flex-direction:column;max-width:82%}.chat-row.from-user{align-self:flex-end;align-items:flex-end}.chat-row.from-assistant{align-self:flex-start;align-items:flex-start}.chat-bubble{border-radius:var(--bubble-radius);padding:var(--space-3) var(--space-4);font-size:var(--text-md);line-height:var(--leading-snug);white-space:pre-wrap}.chat-row.from-user .chat-bubble{background:var(--bubble-user-bg);color:var(--bubble-user-fg);border-bottom-right-radius:var(--radius-sm)}.chat-row.from-assistant .chat-bubble{background:var(--bubble-assistant-bg);color:var(--bubble-assistant-fg);border:1px solid var(--color-border-subtle);border-bottom-left-radius:var(--radius-sm)}.chat-tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-1);padding:2px var(--space-2) 2px 0}.chat-tag:before{content:"";width:6px;height:6px;border-radius:var(--radius-full)}.chat-tag.tag-information{color:var(--color-info)}.chat-tag.tag-information:before{background:var(--bubble-tag-info)}.chat-tag.tag-suggestion{color:var(--color-accent)}.chat-tag.tag-suggestion:before{background:var(--bubble-tag-suggestion)}.chat-tag.tag-action{color:var(--color-success)}.chat-tag.tag-action:before{background:var(--bubble-tag-action)}.chat-tag.tag-error{color:var(--color-danger)}.chat-tag.tag-error:before{background:var(--bubble-tag-error)}.chat-meta{font-family:var(--font-mono);font-size:11px;color:var(--color-text-faint);margin-top:4px;padding:0 var(--space-1)}.chat-composer{display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-subtle);background:var(--color-bg-raised);padding-bottom:max(var(--space-3),env(safe-area-inset-bottom))}.chat-composer textarea{flex:1;resize:none;max-height:120px;min-height:44px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);padding:var(--space-3) var(--space-4);font-size:var(--text-md);line-height:var(--leading-snug)}.chat-composer textarea:focus-visible{border-color:var(--input-border-focus)}.chat-send,.chat-voice{flex-shrink:0;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full)}.chat-send{width:44px;height:44px;background:var(--color-accent);color:var(--color-accent-fg)}.chat-send:disabled{opacity:.4;cursor:not-allowed}.chat-voice{width:var(--voice-button-size);height:var(--voice-button-size);background:var(--color-surface-raised);color:var(--color-text-muted);border:1px solid var(--color-border)}.chat-voice:disabled{opacity:.55;cursor:not-allowed}.chat-voice-active{background:var(--color-danger, #d64545);color:#fff;border-color:transparent;animation:chat-voice-pulse 1.4s ease-in-out infinite}@keyframes chat-voice-pulse{0%,to{box-shadow:0 0 #d6454566}50%{box-shadow:0 0 0 8px #d6454500}}.tasks-screen{flex:1;display:flex;flex-direction:column;min-height:0;padding:var(--space-4) var(--space-5);gap:var(--space-4);overflow-y:auto}.task-composer{display:flex;gap:var(--space-2);flex-wrap:wrap}.task-composer input[type=text]{flex:1;min-width:160px;height:var(--input-height);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);padding:0 var(--space-4);font-size:var(--text-base)}.task-composer input[type=text]:focus-visible{border-color:var(--input-border-focus)}.task-composer select{height:var(--input-height);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--input-radius);padding:0 var(--space-3);font-size:var(--text-sm)}.task-filters{display:flex;gap:var(--space-2)}.task-filters button{background:var(--color-surface);border:1px solid var(--color-border-subtle);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full)}.task-filters button.active{color:var(--color-accent-fg);background:var(--color-accent);border-color:transparent}.task-list-loading{display:flex;justify-content:center;padding:var(--space-8)}.task-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);text-align:center;padding:var(--space-8)}.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.task-item{display:flex;align-items:center;gap:var(--space-3);background:var(--card-bg);border:1px solid var(--card-border);border-left:3px solid var(--color-border);border-radius:var(--card-radius);padding:var(--space-3) var(--space-4)}.task-item.priority-high,.task-item.priority-urgent{border-left-color:var(--color-danger)}.task-item.priority-normal{border-left-color:var(--color-accent)}.task-item.done{opacity:.55}.task-item.done .task-title{text-decoration:line-through}.task-checkbox{flex-shrink:0;width:24px;height:24px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-success);font-size:var(--text-sm);font-weight:var(--weight-bold);display:flex;align-items:center;justify-content:center}.task-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.task-title{font-size:var(--text-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-meta{display:flex;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-faint)}.task-priority-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.03em}.task-delete{flex-shrink:0;background:none;border:none;color:var(--color-text-faint);font-size:var(--text-sm);padding:var(--space-2)}.task-delete:hover:not(:disabled){color:var(--color-danger)}
