:root{--bg-primary:#0f1117;--bg-secondary:#1a1d27;--bg-tertiary:#242836;--bg-hover:#2a2f3e;--text-primary:#e4e6ed;--text-secondary:#9ca3b4;--text-muted:#6b7280;--accent:#6366f1;--accent-hover:#818cf8;--accent-dim:#4f46e520;--border:#2e3348;--success:#22c55e;--warning:#f59e0b;--error:#ef4444;--trend-up:#ef4444;--trend-down:#22c55e;--trend-flat:#9ca3b4;--slack-bg:#1a1d23;--email-bg:#1e2130;--metrics-bg:#1a1f2e;--calendar-bg:#1c2028;--hidden-info-glow:#a855f7;--radius:8px;--radius-lg:12px;--shadow:0 2px 8px #0000004d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);height:100%;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex}#app-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);z-index:10;flex-shrink:0;align-items:center;gap:12px;padding:8px 16px;display:flex}.app-title{white-space:nowrap;font-size:16px;font-weight:700}.sidebar-toggle{border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius);cursor:pointer;background:0 0;padding:4px 8px;font-size:18px;display:none;position:relative}.artifact-count-badge{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-6px;right:-6px}.lang-switcher{align-items:center;gap:4px;margin-left:12px;display:flex}.lang-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;transition:all .15s}.lang-btn:hover{color:var(--text-primary);border-color:var(--accent)}.lang-btn-active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-hover)}.lang-sep{color:var(--text-muted);font-size:11px}.phase-indicator{flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex}.phase-step{align-items:center;gap:4px;display:flex}.phase-dot{border:2px solid var(--border);border-radius:50%;flex-shrink:0;width:10px;height:10px}.phase-label{color:var(--text-muted);white-space:nowrap;font-size:11px}.phase-connector{background:var(--border);width:16px;height:2px}.phase-current .phase-dot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 8px var(--accent)}.phase-current .phase-label{color:var(--accent);font-weight:600}.phase-done .phase-dot{background:var(--success);border-color:var(--success)}.phase-done .phase-label{color:var(--success)}.phase-clickable{cursor:pointer}.phase-clickable:hover .phase-label{text-decoration:underline}.phase-viewing .phase-dot{box-shadow:0 0 8px var(--warning);border-color:var(--warning)}.phase-viewing .phase-label{color:var(--warning);font-weight:600}#main-layout{flex:1;display:flex;overflow:hidden}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:300px;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);padding:12px 16px}.sidebar-header h2{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:14px;font-weight:600}.artifact-list{flex:1;padding:8px;overflow-y:auto}.sidebar-empty{color:var(--text-muted);text-align:center;padding:24px 16px;font-size:13px}.sidebar-artifact-btn{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;align-items:center;gap:8px;margin-bottom:6px;padding:10px 12px;font-size:13px;transition:background .15s,border-color .15s;display:flex}.sidebar-artifact-btn:hover{background:var(--bg-hover);border-color:var(--accent)}.sidebar-artifact-icon{flex-shrink:0;font-size:18px}.sidebar-artifact-label{flex:1}.hidden-info-badge{border-color:var(--hidden-info-glow);box-shadow:0 0 8px #a855f733}.discovery-badge{background:var(--hidden-info-glow);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700}.sidebar-artifact-highlight{border-color:var(--warning);animation:2s artifactHighlight}@keyframes artifactHighlight{0%,to{background:var(--bg-tertiary)}25%,75%{background:var(--bg-hover);border-color:var(--warning)}}.sidebar-flash{animation:1.5s sidebarFlash}@keyframes sidebarFlash{0%,to{border-right-color:var(--border)}25%,75%{border-right-color:var(--accent)}}.chat-panel{flex-direction:column;flex:1;display:flex;overflow:hidden}.npc-selector{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;gap:4px;padding:8px 12px;display:flex;overflow-x:auto}.npc-tab{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;transition:all .15s;display:flex}.npc-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.npc-tab-active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-hover);font-weight:600}.npc-tab-avatar{font-size:16px}.chat-messages{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.chat-message{gap:8px;max-width:100%;display:flex}.system-message{justify-content:center}.system-message .message-content{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:640px;color:var(--text-secondary);padding:16px 20px;font-size:14px;line-height:1.6}.user-message{justify-content:flex-end}.user-message .message-bubble{background:var(--accent);color:#fff;word-break:break-word;border-radius:16px 16px 4px;max-width:480px;padding:8px 14px;font-size:14px}.npc-message{align-items:flex-start}.npc-avatar{flex-shrink:0;font-size:28px;line-height:1}.message-wrapper{flex:1;min-width:0}.npc-name{margin-bottom:4px;font-size:13px;font-weight:600}.npc-role{color:var(--text-muted);font-size:12px;font-weight:400}.npc-bubble{background:var(--bg-tertiary);border:1px solid var(--border);word-break:break-word;white-space:pre-wrap;border-radius:4px 16px 16px;max-width:560px;padding:10px 14px;font-size:14px;line-height:1.6}.typing-cursor{color:var(--accent);animation:.8s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.error-text{color:var(--error)}.btn-retry{background:var(--bg-hover);border:1px solid var(--error);color:var(--error);border-radius:var(--radius);cursor:pointer;margin-top:8px;padding:4px 12px;font-size:12px}.btn-retry:hover{background:var(--error);color:#fff}.chat-form{background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0;gap:8px;padding:12px 16px;display:flex}.chat-input{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);outline:none;flex:1;padding:10px 14px;font-size:14px;transition:border-color .15s}.chat-input:focus{border-color:var(--accent)}.chat-input:disabled{opacity:.5;cursor:not-allowed}.chat-input::placeholder{color:var(--text-muted)}.chat-send{background:var(--accent);border-radius:var(--radius);color:#fff;cursor:pointer;border:none;padding:10px 20px;font-size:14px;font-weight:600;transition:background .15s}.chat-send:hover{background:var(--accent-hover)}.chat-send:disabled{opacity:.5;cursor:not-allowed}.resolution-options{flex-direction:column;gap:10px;max-width:560px;margin:0 auto;padding:8px 0;display:flex}.resolution-btn{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;text-align:left;padding:16px 20px;transition:all .15s}.resolution-btn:hover{border-color:var(--accent);background:var(--bg-hover);transform:translateY(-1px)}.resolution-label{margin-bottom:4px;font-size:15px;font-weight:700}.resolution-desc{color:var(--text-secondary);font-size:13px;line-height:1.5}.debrief{text-align:left}.debrief h3{color:var(--text-primary);margin-bottom:12px;font-size:18px}.debrief h4{color:var(--accent-hover);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px;font-size:14px}.debrief-stat{margin-bottom:4px;font-size:14px}.debrief-missed{background:var(--bg-primary);border-radius:var(--radius);border-left:3px solid var(--warning);color:var(--text-secondary);margin-bottom:8px;padding:10px 14px;font-size:13px}.debrief-point{color:var(--text-secondary);margin-bottom:6px;font-size:14px;font-style:italic}.advance-btn{margin-top:8px}.modal-overlay{z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:680px;max-height:85vh;box-shadow:var(--shadow);padding:32px;position:relative;overflow-y:auto}.modal-content h2{margin-bottom:4px;font-size:24px}.modal-subtitle{color:var(--text-muted);margin-bottom:16px;font-size:14px}.modal-hint{color:var(--text-muted);margin-bottom:16px;font-size:13px}.modal-hint a{color:var(--accent-hover);text-decoration:underline}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:24px;position:absolute;top:12px;right:16px}.modal-close:hover{color:var(--text-primary)}#api-key-form{flex-direction:column;gap:8px;display:flex}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:12px;font-weight:600}.form-select,.form-input{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);outline:none;padding:10px 14px;font-size:14px}.form-select:focus,.form-input:focus{border-color:var(--accent)}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%239ca3b4'%3E%3Cpath d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.form-select option{background:var(--bg-secondary);color:var(--text-primary)}#api-key-input{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);outline:none;padding:12px 14px;font-family:monospace;font-size:14px}#api-key-input:focus{border-color:var(--accent)}.form-error{color:var(--error);font-size:13px}.btn-primary{background:var(--accent);border-radius:var(--radius);color:#fff;cursor:pointer;border:none;padding:12px 24px;font-size:15px;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.notifications{z-index:50;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:80px;right:16px}.notification{background:var(--accent);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 18px;font-size:13px;font-weight:500;transition:transform .3s;transform:translate(120%)}.notification-visible{transform:translate(0)}.artifact-card{margin-bottom:16px}.artifact-type-badge{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:12px}.artifact-label{margin-bottom:12px;font-size:16px;font-weight:700}.artifact-hidden-info{border:1px solid var(--hidden-info-glow);border-radius:var(--radius-lg);padding:16px;box-shadow:0 0 16px #a855f726}.artifact-slack{background:var(--slack-bg);border-radius:var(--radius);overflow:hidden}.slack-header{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:8px 12px;font-size:14px;font-weight:600;display:flex}.slack-channel-icon{color:var(--text-muted)}.slack-messages{padding:8px 0}.slack-message{gap:8px;padding:6px 12px;display:flex}.slack-message:hover{background:#ffffff05}.slack-avatar{flex-shrink:0;font-size:20px;line-height:1.2}.slack-body{flex:1;min-width:0}.slack-meta{align-items:baseline;gap:8px;display:flex}.slack-sender{font-size:13px;font-weight:700}.slack-time{color:var(--text-muted);font-size:11px}.slack-text{color:var(--text-secondary);font-size:14px;line-height:1.5}.artifact-email{background:var(--email-bg);border-radius:var(--radius);overflow:hidden}.email-header{border-bottom:1px solid var(--border);padding:12px 16px}.email-field{color:var(--text-secondary);margin-bottom:2px;font-size:13px}.email-label{color:var(--text-muted);margin-right:4px;font-weight:600}.email-body{color:var(--text-primary);padding:16px;font-size:14px;line-height:1.7}.artifact-metrics{background:var(--metrics-bg);border-radius:var(--radius);padding:16px}.metrics-title{margin-bottom:14px;font-size:15px;font-weight:700}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.metric-item{background:var(--bg-primary);border-radius:var(--radius);padding:12px}.metric-value{margin-bottom:2px;font-size:22px;font-weight:700}.metric-trend{font-size:14px}.metric-label{color:var(--text-secondary);font-size:12px;font-weight:600}.metric-note{color:var(--text-muted);margin-top:4px;font-size:11px}.metrics-footnote{border-top:1px solid var(--border);color:var(--text-muted);margin-top:12px;padding-top:10px;font-size:12px;font-style:italic}.artifact-calendar{background:var(--calendar-bg);border-radius:var(--radius);padding:16px}.calendar-icon{margin-bottom:8px;font-size:28px}.calendar-title{margin-bottom:12px;font-size:16px;font-weight:700}.calendar-details{margin-bottom:12px}.calendar-field{color:var(--text-secondary);margin-bottom:6px;font-size:13px}.calendar-label{color:var(--text-muted);margin-right:4px;font-weight:600}.calendar-attendees{margin-top:4px;padding-left:16px;list-style:none}.calendar-attendees li{color:var(--text-muted);margin-bottom:2px;font-size:12px}.calendar-attendees li:before{content:"•";color:var(--accent);margin-right:6px}.calendar-description{color:var(--text-secondary);border-top:1px solid var(--border);padding-top:10px;font-size:13px;line-height:1.5}.debrief-timeline{border-left:2px solid var(--border);margin:16px 0;padding-left:24px;position:relative}.debrief-timeline h3{color:var(--text-primary);margin-bottom:8px;padding-left:24px;font-size:16px;position:relative;left:-24px}.debrief-duration{color:var(--text-muted);margin-bottom:16px;font-size:13px}.timeline-node{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:12px 16px;position:relative}.timeline-dot{border:2px solid var(--border);background:var(--bg-primary);border-radius:50%;width:12px;height:12px;position:absolute;top:16px;left:-31px}.timeline-dot-conversation{background:var(--accent);border-color:var(--accent)}.timeline-dot-artifact{background:var(--success);border-color:var(--success)}.timeline-dot-decision{background:var(--warning);border-color:var(--warning)}.timeline-dot-ghost{border-color:var(--text-muted);background:0 0;border-style:dashed}.timeline-ghost{opacity:.6;border-style:dashed;border-color:var(--text-muted)}.timeline-ghost-prefix{color:var(--warning);text-transform:uppercase;font-size:12px;font-weight:600}.timeline-node-label{margin-bottom:4px;font-size:14px;font-weight:600}.timeline-node-meta{color:var(--text-muted);margin-bottom:8px;font-size:12px}.timeline-observations{flex-direction:column;gap:6px;margin-top:10px;display:flex}.timeline-axis{font-size:13px;line-height:1.5}.timeline-axis-label{color:var(--accent-hover);font-weight:700}.timeline-axis-text{color:var(--text-secondary)}.skill-needle{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);margin-top:20px;padding:16px}.skill-needle h3{color:var(--accent-hover);margin-bottom:10px;font-size:16px}.skill-needle blockquote{border-left:3px solid var(--accent);color:var(--text-primary);margin:0;padding:12px 16px;font-size:14px;font-style:italic;line-height:1.7}.coach-loading{color:var(--text-secondary);align-items:center;gap:12px;padding:12px 0;font-size:14px;display:flex}.coach-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.8s linear infinite coachSpin}@keyframes coachSpin{to{transform:rotate(360deg)}}.coach-error{color:var(--text-secondary);font-size:14px}.profile-card{padding:8px 0}.profile-card h3{color:var(--accent-hover);margin-bottom:12px;font-size:18px}.skill-needle-text{border-left:3px solid var(--accent);color:var(--text-primary);margin:0 0 16px;padding:12px 16px;font-size:14px;font-style:italic;line-height:1.7}.profile-axes{flex-direction:column;gap:8px;display:flex}.profile-axis{font-size:13px;line-height:1.5}.btn-view-profile{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius);cursor:pointer;background:0 0;width:100%;margin-top:12px;padding:8px 16px;font-size:13px;transition:all .15s}.btn-view-profile:hover{border-color:var(--accent);color:var(--accent-hover)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (width<=768px){.sidebar-toggle{align-items:center;display:flex}.sidebar{z-index:20;width:280px;box-shadow:var(--shadow);transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar-open{transform:translate(0)}.phase-label{display:none}.modal-content{margin:8px;padding:20px}.npc-tab-name{display:none}.metrics-grid{grid-template-columns:1fr 1fr}.resolution-btn{padding:12px 14px}}@media (width<=480px){.app-title{font-size:14px}.chat-messages{padding:10px}.npc-bubble,.user-message .message-bubble{max-width:100%}.metrics-grid{grid-template-columns:1fr}}.scenario-selector{flex-direction:column;gap:12px;max-height:60vh;margin-top:16px;display:flex;overflow-y:auto}.scenario-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;color:var(--text-primary);width:100%;font-family:inherit;font-size:inherit;padding:16px;transition:border-color .2s,background .2s}.scenario-card:hover{border-color:var(--accent);background:var(--bg-hover)}.scenario-card-title{margin-bottom:6px;font-size:16px;font-weight:600}.scenario-card-desc{color:var(--text-secondary);margin-bottom:10px;font-size:13px;line-height:1.4}.scenario-card-meta{flex-wrap:wrap;gap:8px;display:flex}.scenario-badge{background:var(--bg-secondary);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:11px}
