*{box-sizing:border-box}:root{color:#18181b;font-synthesis:none;background:#f4f4f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body,#app{height:100%}body{min-width:320px;margin:0;overflow:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.auth-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:#fff;border:1px solid #e4e4e7;border-radius:24px;width:min(100%,480px);padding:32px;box-shadow:0 18px 60px #18181b14}.auth-card h1{letter-spacing:-.055em;margin:8px 0 12px;font-size:clamp(2rem,7vw,3.25rem);line-height:.98}.eyebrow,.label{color:#71717a;letter-spacing:.11em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:800}.muted{color:#71717a}.small{font-size:.86rem}.hint{color:#71717a;margin:-5px 0 0;font-size:.78rem}.segmented,.tabs{background:#f4f4f5;border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.segmented{margin:28px 0 20px}.segmented button,.tabs button{color:#71717a;background:0 0;border:0;border-radius:9px;padding:10px 12px}.segmented button.active,.tabs button.active{color:#18181b;background:#fff;box-shadow:0 1px 5px #18181b14}.auth-form{gap:14px;display:grid}.auth-form label,.mode-picker{color:#52525b;gap:7px;font-size:.82rem;font-weight:700;display:grid}input,textarea,select{color:#18181b;background:#fff;border:1px solid #d4d4d8;border-radius:12px;outline:none;width:100%;padding:12px 14px}input:focus,textarea:focus,select:focus{border-color:#18181b;box-shadow:0 0 0 3px #18181b14}textarea{resize:vertical}.primary,.ghost,.compact{color:#18181b;background:#fff;border:1px solid #d4d4d8;border-radius:10px;padding:10px 14px;font-weight:750}.primary{color:#fff;background:#18181b;border-color:#18181b}.compact{padding:7px 10px;font-size:.78rem}.compact.primary{color:#fff;background:#18181b;border-color:#18181b}.danger{color:#b91c1c;background:#fff7f7;border-color:#fecaca}.error{color:#b91c1c;font-size:.86rem}.app-shell{grid-template-rows:auto minmax(0,1fr);gap:10px;height:100dvh;padding:12px;display:grid;overflow:hidden}.topbar{justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:1600px;min-height:46px;margin:0 auto;display:flex}.topbar-actions,.card-actions{flex-wrap:wrap;gap:8px;display:flex}.notice,.global-error{z-index:20;border-radius:12px;width:min(680px,100vw - 32px);margin:0;padding:10px 14px;position:fixed;top:64px;left:50%;transform:translate(-50%);box-shadow:0 10px 35px #18181b1f}.notice{color:#166534;background:#ecfdf5;border:1px solid #bbf7d0;font-size:.86rem}.global-error{background:#fef2f2;border:1px solid #fecaca}.workspace{grid-template-columns:minmax(300px,1fr) clamp(250px,22vw,310px);gap:10px;width:100%;max-width:1600px;min-height:0;margin:0 auto;display:grid}.conversation-sidebar,.chat-panel,.learning-panel{background:#fff;border:1px solid #e4e4e7;border-radius:18px;min-height:0}.conversation-sidebar,.learning-panel{min-width:0;padding:12px;overflow:hidden}.conversation-sidebar{grid-template-rows:auto auto minmax(0,1fr);display:grid}.learning-panel{grid-template-rows:auto auto auto minmax(0,1fr);display:grid}.panel-heading,.chat-header,.card-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.panel-heading{margin-bottom:14px}.current-mode-card{background:linear-gradient(#fafafa 0%,#f7f7f8 100%);border:1px solid #e4e4e7;border-radius:14px;gap:7px;margin-bottom:12px;padding:12px 13px;display:grid}.current-mode-card>div{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.current-mode-card strong{font-size:.9rem}.current-mode-card p{color:#52525b;margin:0;font-size:.8rem;line-height:1.35}.current-mode-card small{color:#a1a1aa;font-size:.7rem}.panel-heading>div,.chat-header>div{gap:3px;display:grid}.mode-picker{margin-bottom:12px}.conversation-list{align-content:start;gap:4px;min-height:0;padding-right:3px;display:grid;overflow:auto}.conversation-item{text-align:left;color:#27272a;background:0 0;border:1px solid #0000;border-radius:9px;gap:3px;padding:8px 9px;font-size:.82rem;transition:background .14s,border-color .14s,transform .14s;display:grid}.conversation-item:hover,.conversation-item.active{background:#f4f4f5;border-color:#e4e4e7}.conversation-item small{color:#a1a1aa;letter-spacing:.05em;text-transform:uppercase;font-size:.62rem}.chat-panel{grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.chat-header{border-bottom:1px solid #e4e4e7;padding:12px 15px}.chat-header h2{margin:0;font-size:1.15rem}.live-dot{color:#52525b;background:#f4f4f5;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:700}.message-list{overscroll-behavior:contain;min-height:0;padding:18px;overflow:auto}.empty-state{text-align:center;color:#71717a;max-width:520px;margin:18vh auto 0}.empty-state h3{color:#18181b;letter-spacing:-.04em;margin-bottom:8px;font-size:2rem}.message{width:fit-content;max-width:min(760px,86%);margin:0 0 12px;animation:.16s ease-out message-in}.message.user{margin-left:auto}.message>span{color:#a1a1aa;text-transform:uppercase;margin:0 0 5px 3px;font-size:.7rem;font-weight:800;display:block}.message p{overflow-wrap:anywhere;background:#f4f4f5;border-radius:15px;width:fit-content;max-width:100%;margin:0;padding:11px 13px;line-height:1.48}.message p strong{font-weight:780}.message p code{background:#18181b14;border-radius:5px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em}.message.user p code{background:#ffffff24}.message.user p{color:#fff;background:#18181b}.message.pending{opacity:.65}.idle-marker{width:fit-content;max-width:min(520px,82%);margin:2px 0 16px;animation:.16s ease-out message-in}.idle-marker>span{color:#60a5fa;text-transform:uppercase;margin:0 0 5px 3px;font-size:.7rem;font-weight:800;display:block}.idle-bubble{color:#1e3a8a;background:#eff6ff;border:1px solid #bfdbfe;border-radius:15px;padding:10px 12px;box-shadow:0 4px 18px #2563eb12}.idle-bubble small{color:#3b82f6;letter-spacing:.04em;text-transform:uppercase;margin-bottom:3px;font-size:.63rem;font-weight:800;display:block}.idle-bubble p{margin:0;font-size:.82rem;line-height:1.4}.idle-marker.live .idle-bubble{box-shadow:0 0 0 3px #3b82f60d,0 5px 20px #2563eb17}.thinking-message{opacity:1}.second-pulse{background:linear-gradient(#fafafa 0%,#f4f4f5 100%);border:1px solid #e4e4e7;border-radius:999px;width:46px;height:34px;margin-left:2px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffe6,0 4px 14px #18181b0a}.second-pulse:after{content:"";background:radial-gradient(circle,#18181b14 0%,#18181b00 72%);border-radius:999px;animation:1.8s ease-in-out infinite second-pulse-glow;position:absolute;inset:7px 11px}.second-pulse-loop{opacity:.66;transform-origin:50%;border:1.5px solid #52525b;border-radius:52% 48% 58% 42%;width:18px;height:20px;position:absolute;top:7px}.second-pulse-loop-left{animation:1.8s cubic-bezier(.45,0,.2,1) infinite second-pulse-left;left:8px;transform:rotate(18deg)}.second-pulse-loop-right{border-radius:46% 54% 42% 58%;animation:1.8s cubic-bezier(.45,0,.2,1) infinite second-pulse-right;right:8px;transform:rotate(-18deg)}.second-pulse-core{z-index:2;transform-origin:50%;background:#18181b;border-radius:999px;width:4px;height:9px;animation:1.8s ease-in-out infinite second-pulse-core;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scaleY(.72)}@keyframes second-pulse-left{0%,to{opacity:.42;transform:translate(0)rotate(18deg)scale(.92,1.02)}42%{opacity:.86;transform:translate(6px)rotate(58deg)scale(1.02,.9)}58%{opacity:.9;transform:translate(7px)rotate(92deg)scale(.96,1.04)}}@keyframes second-pulse-right{0%,to{opacity:.42;transform:translate(0)rotate(-18deg)scale(.92,1.02)}42%{opacity:.86;transform:translate(-6px)rotate(-58deg)scale(1.02,.9)}58%{opacity:.9;transform:translate(-7px)rotate(-92deg)scale(.96,1.04)}}@keyframes second-pulse-core{0%,to{opacity:.42;transform:translate(-50%,-50%)scale(.72,.62)}48%{opacity:1;transform:translate(-50%,-50%)scale(1.2,1.08)}62%{opacity:.74;transform:translate(-50%,-50%)scale(.86,1.18)}}@keyframes second-pulse-glow{0%,to{opacity:.25;transform:scale(.82)}50%{opacity:.95;transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.second-pulse:after,.second-pulse-loop,.second-pulse-core{animation:none}.second-pulse-loop-left{transform:translate(5px)rotate(48deg)}.second-pulse-loop-right{transform:translate(-5px)rotate(-48deg)}.second-pulse-core{opacity:.78;transform:translate(-50%,-50%)scaleX(.9)}}.composer{border-top:1px solid #e4e4e7;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;padding:10px;display:grid}.composer textarea{min-height:62px;max-height:160px;padding:10px 12px}.composer-actions{justify-content:flex-end;align-items:center;gap:7px;display:flex}.voice-button{color:#18181b;background:#fff;border:1px solid #d4d4d8;border-radius:50%;flex:0 0 42px;place-items:center;width:42px;height:42px;font-size:1rem;transition:transform .14s,background .14s,border-color .14s;display:grid}.voice-button:hover:not(:disabled){border-color:#a1a1aa;transform:translateY(-1px)}.mic-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.voice-button.recording{background:#18181b;border-color:#18181b}.recording-dot{background:#ef4444;border-radius:50%;width:10px;height:10px;animation:1.2s infinite recording-pulse;box-shadow:0 0 #ef444459}.recording-time,.transcribing-label{color:#71717a;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.7rem}.send{min-height:42px}@keyframes recording-pulse{0%{box-shadow:0 0 #ef444459}70%{box-shadow:0 0 0 7px #ef444400}to{box-shadow:0 0 #ef444400}}.tabs{margin-bottom:8px}.learning-panel .tabs button{padding:7px 8px;font-size:.72rem}.learning-list{align-content:start;gap:6px;min-height:0;padding-right:3px;display:grid;overflow:auto}.learning-card{border:1px solid #e4e4e7;border-radius:10px;padding:8px 9px;font-size:.76rem}.learning-card p{margin:6px 0;line-height:1.36}.learning-card small{color:#71717a;font-size:.66rem}.guidance-card>strong{font-size:.9rem}.guidance-completeness{gap:6px;margin:8px 0;display:grid}.guidance-completeness>div:first-child{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.guidance-progress{background:#e4e4e7;border-radius:999px;height:5px;overflow:hidden}.guidance-progress>span{border-radius:inherit;background:#18181b;height:100%;transition:width .18s;display:block}.guidance-detail,.guidance-missing{margin:0;font-size:.7rem;line-height:1.4}.guidance-detail strong,.guidance-missing strong{color:#71717a;letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px;font-size:.58rem;display:block}.guidance-missing{color:#71717a}.status.paused{color:#3730a3;background:#e0e7ff}.status.achieved{color:#1d4ed8;background:#dbeafe}.clarification-question{color:#52525b;border-left:2px solid #d4d4d8;margin:7px 0 0;padding-left:7px;font-size:.7rem}.clarification-question strong{color:#71717a;letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px;font-size:.58rem;display:block}.card-meta{color:#71717a;letter-spacing:.035em;text-transform:uppercase;font-size:.62rem;font-weight:800}.status{background:#f4f4f5;border-radius:999px;padding:3px 7px}.status.confirmed,.status.auto_confirmed,.status.active,.status.auto_active{color:#166534;background:#dcfce7}.status.candidate{color:#92400e;background:#fef3c7}.status.rejected,.status.disputed,.status.outdated{color:#991b1b;background:#fee2e2}.card-actions{margin-top:7px}.learning-panel .compact{border-radius:8px;padding:5px 7px;font-size:.68rem}.learning-panel .panel-heading{margin-bottom:8px}.learning-panel .panel-heading strong,.conversation-sidebar .panel-heading strong{font-size:.9rem}@keyframes message-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.conversation-list,.learning-list,.message-list{scrollbar-width:thin;scrollbar-color:#d4d4d8 transparent}@media (width<=900px) and (width>=721px){.app-shell{padding:8px}.workspace{grid-template-columns:minmax(280px,1fr) 235px;gap:7px}.conversation-sidebar,.learning-panel{padding:9px}.live-dot{display:none}}@media (width<=720px){.app-shell{padding:10px}.topbar{align-items:flex-start}.topbar-actions{justify-content:flex-end}.workspace{flex-direction:column;min-height:0;display:flex;overflow:auto}.chat-panel{flex:0 0 min(68vh,640px)}.learning-panel{flex:0 0 320px}.composer{grid-template-columns:1fr}.composer-actions{justify-content:stretch}.send{flex:1}.message{max-width:94%}}@media (prefers-color-scheme:dark){:root{color:#f4f4f5;background:#09090b}.auth-card,.conversation-sidebar,.chat-panel,.learning-panel,input,textarea,select,.segmented button.active,.tabs button.active,.ghost,.compact{color:#f4f4f5;background:#18181b;border-color:#3f3f46}.segmented,.tabs,.conversation-item:hover,.conversation-item.active,.message p,.live-dot,.status{background:#27272a}.conversation-item,.chat-header h2,.empty-state h3{color:#f4f4f5}.chat-header,.composer{border-color:#3f3f46}.message.user p,.primary,.compact.primary,.voice-button.recording{color:#18181b;background:#fafafa;border-color:#fafafa}.learning-card{border-color:#3f3f46}}.clean-chat-shell{grid-template-rows:minmax(0,1fr);padding:clamp(14px,3vw,32px)}.clean-workspace{grid-template-columns:minmax(0,1fr);gap:0;width:min(920px,100%);max-width:920px;height:100%;margin:0 auto}.clean-chat-panel{width:100%;height:100%;box-shadow:0 18px 60px #18181b14}.clean-chat-panel .chat-header{min-height:58px;position:relative}.clean-reflection-state{color:#71717a;white-space:nowrap;align-items:center;gap:7px;font-size:.72rem;font-weight:750;display:inline-flex;position:absolute;left:50%;transform:translate(-50%)}.reflection-dot{background:#60a5fa;border-radius:999px;width:7px;height:7px;box-shadow:0 0 0 4px #60a5fa1a}.clean-chat-action{color:#a1a1aa;background:0 0;border:0;padding:6px 8px;font-size:.72rem;font-weight:700}.clean-chat-action:hover{color:#52525b}@media (width<=720px){.clean-chat-shell{padding:0}.clean-workspace{grid-template-columns:minmax(0,1fr);width:100%;height:100%;display:grid;overflow:hidden}.clean-chat-panel{min-height:0;box-shadow:none;border-top:0;border-bottom:0;border-radius:0;flex:none}.idle-marker{max-width:90%}}@media (prefers-color-scheme:dark){.idle-marker>span{color:#93c5fd}.idle-bubble{color:#dbeafe;background:#172554;border-color:#1d4ed8;box-shadow:0 4px 18px #1e40af2e}.idle-bubble small{color:#93c5fd}.clean-reflection-state{color:#a1a1aa}.reflection-dot{background:#93c5fd;box-shadow:0 0 0 4px #93c5fd1a}.clean-chat-action{color:#71717a}.clean-chat-action:hover{color:#d4d4d8}.clean-chat-panel{box-shadow:0 18px 60px #00000047}}
