@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");:root{--color-primary:#e8a838;--color-primary-light:#f5c76b;--color-primary-dark:#c48a20;--color-primary-bg:#fff8ec;--color-secondary:#5ba888;--color-secondary-bg:#f0f9f4;--color-success:#5ba888;--color-warning:#e8a838;--color-danger:#e07070;--color-info:#6ba3d6;--color-bg-page:#fafaf7;--color-bg-card:#fff;--color-bg-input:#f5f5f0;--color-bg-hover:#f0ede5;--color-border:#e8e4db;--color-divider:#f0ece3;--color-text-primary:#2c2c2c;--color-text-secondary:#7a7a72;--color-text-tertiary:#b0ada5;--color-text-inverse:#fff;--node-amber:#fff2d9;--node-green:#e8f5ec;--node-blue:#e3f0fa;--node-peach:#fde8e0;--node-purple:#f0e8f5;--font-family:"Inter","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:17px;--text-xl:20px;--text-2xl:24px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(140,120,80,.06);--shadow-md:0 4px 12px rgba(140,120,80,.08);--shadow-lg:0 8px 24px rgba(140,120,80,.1);--shadow-focus:0 0 0 3px rgba(232,168,56,.25);--transition-fast:0.15s ease;--transition-normal:0.25s ease}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font-family);font-size:var(--text-base);line-height:1.6;color:var(--color-text-primary);background:var(--color-bg-page);overflow:hidden}::-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)}.app-shell{display:flex;height:100vh;width:100vw}.main-area{flex:1 1;display:flex;min-width:0}.sidebar{width:240px;min-width:240px;background:var(--color-bg-card);border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:width var(--transition-normal)}.sidebar-header{padding:var(--space-4);justify-content:space-between;border-bottom:1px solid var(--color-divider)}.logo,.sidebar-header{display:flex;align-items:center}.logo{gap:var(--space-2)}.logo-icon{font-size:28px;line-height:1}.logo-text{font-size:var(--text-xl);font-weight:700;color:var(--color-primary-dark)}.session-list{flex:1 1;overflow-y:auto;padding:var(--space-2)}.session-item{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);margin-bottom:2px}.session-item:hover{background:var(--color-bg-hover)}.session-item.active{background:var(--color-primary-bg);border-left:3px solid var(--color-primary)}.session-title{font-size:var(--text-base);font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-time{font-size:var(--text-xs);margin-top:2px}.session-time,.sidebar-footer{color:var(--color-text-tertiary)}.sidebar-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-divider);font-size:var(--text-sm);text-align:center}.btn-icon{width:34px;height:34px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:all var(--transition-fast)}.btn-icon:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.btn-primary{background:linear-gradient(135deg,#e8a838,#f0b840);color:var(--color-text-inverse);font-weight:600;font-size:var(--text-base);padding:10px 24px;border-radius:var(--radius-xl);border:none;box-shadow:0 2px 8px rgba(232,168,56,.25);cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:var(--space-2)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(232,168,56,.35)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-organize{background:linear-gradient(135deg,#e8a838,#5ba888);color:var(--color-text-inverse);border:none;font-weight:600;font-size:var(--text-base);padding:8px 20px;border-radius:var(--radius-xl);cursor:pointer;display:flex;align-items:center;gap:6px;box-shadow:0 2px 8px rgba(232,168,56,.25);transition:all .2s;animation:pulse-glow 3s ease-in-out infinite}.btn-organize:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px rgba(232,168,56,.35)}.btn-organize:disabled{opacity:.5;cursor:not-allowed;animation:none}.btn-organize.loading svg{animation:spin 1.5s linear infinite}.chat-panel{flex:1 1;min-width:360px;display:flex;flex-direction:column;background:var(--color-bg-page)}.panel-header{padding:var(--space-3) var(--space-5);display:flex;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--color-divider);background:var(--color-bg-card);min-height:52px}.panel-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary)}.panel-header-right{margin-left:auto}.chat-messages{overflow-y:auto;padding:var(--space-5);gap:var(--space-4)}.chat-messages,.welcome{flex:1 1;display:flex;flex-direction:column}.welcome{align-items:center;justify-content:center;text-align:center;gap:var(--space-2)}.welcome-avatar{font-size:64px;margin-bottom:var(--space-2)}.welcome-title{font-size:var(--text-2xl);font-weight:600;color:var(--color-text-primary)}.welcome-subtitle{font-size:var(--text-md);color:var(--color-text-secondary);margin-bottom:28px}.welcome-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-5)}.scenario-list{display:flex;flex-direction:column;gap:10px;width:100%;max-width:420px}.scenario-btn{display:flex;align-items:center;gap:var(--space-3);padding:14px 18px;border:1.5px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);cursor:pointer;text-align:left;transition:all .2s;box-shadow:var(--shadow-sm);font-family:var(--font-family)}.scenario-btn:hover{border-color:var(--color-primary);background:var(--color-primary-bg);transform:translateX(4px);box-shadow:var(--shadow-md)}.scenario-icon{font-size:22px;flex-shrink:0}.scenario-text{flex:1 1;font-size:var(--text-base);color:var(--color-text-primary);font-weight:500}.scenario-tag{font-size:11px;color:var(--color-primary-dark);background:var(--color-primary-bg);padding:3px 8px;border-radius:var(--radius-full);white-space:nowrap;font-weight:500}.message{display:flex;gap:10px;max-width:80%;animation:message-in .3s cubic-bezier(.16,1,.3,1)}.message.user{align-self:flex-end;flex-direction:row-reverse}.message.assistant{align-self:flex-start}.message-avatar{width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.message.assistant .message-avatar{background:linear-gradient(135deg,var(--color-primary-bg),#fff2d9);border:1px solid #f0ddb8}.message.user .message-avatar{background:var(--color-primary);color:#fff;font-size:var(--text-base);font-weight:600}.message-bubble{padding:var(--space-3) var(--space-4);font-size:var(--text-base);line-height:1.7;word-break:break-word}.message.assistant .message-bubble{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:4px 14px 14px 14px;box-shadow:var(--shadow-sm)}.message.user .message-bubble{background:linear-gradient(135deg,#fff2d9,var(--color-primary-bg));border:1px solid #f0ddb8;border-radius:14px 4px 14px 14px}.message-bubble p{margin:0 0 8px}.message-bubble p:last-child{margin-bottom:0}.message-bubble strong{font-weight:600}.message-bubble ol,.message-bubble ul{padding-left:20px;margin:8px 0}.message-bubble code{background:var(--color-bg-input);padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:var(--text-sm)}.message-bubble pre{background:var(--color-bg-input);padding:var(--space-3);border-radius:var(--radius-sm);overflow-x:auto;margin:8px 0}.message-bubble pre code{background:none;padding:0}.message-bubble h3{font-size:var(--text-md);font-weight:600;margin:12px 0 4px}.btn-organize-inline{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:6px 14px;background:linear-gradient(135deg,#fff8ec,#fff2d9);border:1.5px solid #f0ddb8;border-radius:var(--radius-full);color:var(--color-primary-dark);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all .2s;font-family:var(--font-family)}.btn-organize-inline:hover{background:linear-gradient(135deg,#fff2d9,#ffe8b8);transform:translateY(-1px);box-shadow:0 4px 12px rgba(232,168,56,.2)}.typing-indicator{display:flex;align-items:center;gap:4px;padding:16px}.typing-indicator span{width:8px;height:8px;border-radius:50%;background:var(--color-primary);animation:typing-dot 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.chat-input-area{padding:var(--space-3) var(--space-5) var(--space-4);background:var(--color-bg-card);border-top:1px solid var(--color-divider)}.input-wrapper{position:relative}.input-chat{width:100%;background:var(--color-bg-input);border:1.5px solid transparent;border-radius:var(--radius-lg);padding:14px 50px 14px 20px;font-size:var(--text-base);font-family:var(--font-family);line-height:20px;color:var(--color-text-primary);resize:none;outline:none;transition:all .2s;max-height:120px}.input-chat:focus{background:var(--color-bg-card);border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.input-chat::placeholder{color:var(--color-text-tertiary)}.btn-send{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:none;background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);box-shadow:0 2px 8px rgba(232,168,56,.25)}.btn-send svg{width:16px;height:16px;display:block}.btn-send:hover:not(:disabled){background:var(--color-primary-light);transform:translateY(-50%) scale(1.05)}.btn-send:disabled{opacity:.4;cursor:not-allowed}.input-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);text-align:center;margin-top:6px}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,rgba(232,168,56,.16),transparent 28%),linear-gradient(180deg,#fffdf8,#f6f2e8);padding:24px}.auth-card{width:100%;max-width:420px;background:hsla(0,0%,100%,.92);border:1px solid hsla(42,22%,88%,.9);border-radius:24px;box-shadow:0 24px 60px rgba(140,120,80,.12);padding:28px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-brand{text-align:center;margin-bottom:20px}.auth-brand h1{font-size:28px;font-weight:700;margin-top:10px}.auth-brand p{font-size:14px;color:var(--color-text-secondary);margin-top:6px}.auth-logo{width:76px;height:76px;object-fit:cover;border-radius:50%;box-shadow:0 12px 30px rgba(232,168,56,.18)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-bottom:18px;background:#f8f4eb;padding:6px;border-radius:16px}.auth-tabs button{border:none;background:transparent;border-radius:12px;padding:10px 12px;font-size:14px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.auth-tabs button.active{background:#fff;color:var(--color-primary-dark);box-shadow:0 6px 18px rgba(140,120,80,.08)}.auth-form{gap:14px}.auth-form,.auth-form label{display:flex;flex-direction:column}.auth-form label{gap:6px;font-size:13px;color:var(--color-text-secondary)}.auth-form input{border:1px solid var(--color-border);background:#fff;border-radius:14px;padding:12px 14px;outline:none;font-size:14px;transition:all var(--transition-fast)}.auth-form input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.auth-error{font-size:13px;color:#c04040;background:#fff0ed;border:1px solid #f3ccc6;padding:10px 12px;border-radius:12px}.auth-submit{border:none;border-radius:16px;padding:12px 14px;background:linear-gradient(135deg,#e8a838,#f2c56b);color:#fff;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 12px 24px rgba(232,168,56,.24);transition:all var(--transition-fast)}.auth-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 16px 28px rgba(232,168,56,.3)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.divider-handle{width:5px;background:transparent;cursor:col-resize;position:relative;flex-shrink:0;transition:background .2s}.divider-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:40px;border-radius:2px;background:var(--color-border);transition:background .2s}.divider-handle.dragging,.divider-handle:hover{background:rgba(232,168,56,.08)}.divider-handle.dragging:after,.divider-handle:hover:after{background:var(--color-primary)}.mindmap-panel{flex:1 1;min-width:400px;display:flex;flex-direction:column;background:var(--color-bg-card);border-left:1px solid var(--color-divider)}.mindmap-panel .panel-header{justify-content:space-between}.mindmap-content{flex:1 1;overflow:auto;position:relative;display:flex;flex-direction:column}.mindmap-stage-shell{display:flex;flex-direction:column;gap:12px;width:100%;height:100%;min-height:400px;padding:16px}.mindmap-stage-shell.is-fullscreen{background:var(--color-bg-card);padding:24px}.mindmap-stage-canvas{flex:1 1;min-height:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}.mindmap-toolbar{justify-content:space-between;gap:12px}.mindmap-toolbar,.mindmap-toolbar-group{display:flex;align-items:center;flex-wrap:wrap}.mindmap-toolbar-group{gap:8px}.mindmap-toolbar-btn{border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);border-radius:var(--radius-md);padding:8px 12px;font-size:var(--text-sm);font-family:var(--font-family);display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.mindmap-toolbar-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary-dark);background:var(--color-primary-bg);transform:translateY(-1px)}.mindmap-toolbar-btn:disabled{opacity:.45;cursor:not-allowed}.stage-listening{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-2);animation:fade-in .3s ease}.stage-listening .icon{font-size:42px;margin-bottom:var(--space-1)}.stage-listening .title{font-size:16px;font-weight:500;color:var(--color-text-primary)}.stage-listening .desc{font-size:var(--text-sm);color:var(--color-text-tertiary)}.stage-points{flex:1 1;display:flex;flex-direction:column;padding:40px;max-width:600px;margin:0 auto;width:100%;animation:fade-in .3s ease}.points-header{display:flex;align-items:center;gap:10px;margin-bottom:24px}.points-header .icon{font-size:24px}.points-header .title{font-size:18px;font-weight:600;color:var(--color-text-primary)}.points-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-8)}.points-list li{position:relative;padding-left:20px;font-size:var(--text-md);line-height:1.6;color:var(--color-text-secondary)}.points-list li:before{content:"•";color:var(--color-primary);position:absolute;left:0;top:0;font-weight:700}.points-action{margin-top:auto}.stage-empty{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-1)}.stage-empty .icon{font-size:48px;margin-bottom:var(--space-2);opacity:.7}.stage-empty .title{font-size:var(--text-lg);font-weight:500;color:var(--color-text-secondary)}.stage-empty .subtitle{font-size:var(--text-base);color:var(--color-text-tertiary)}.mode-indicator{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4);border-bottom:1px solid #f0ddb8;animation:fade-in .3s ease}.mode-indicator-left{display:flex;align-items:center;gap:10px}.mode-indicator-icon{font-size:22px;line-height:1}.mode-indicator-name{font-size:var(--text-sm);font-weight:600;display:block}.mode-indicator-hint{font-size:11px;color:var(--color-text-secondary);display:block}.mode-switch{position:relative}.btn-switch{border:none;background:transparent;padding:4px 10px;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);font-size:var(--text-xs);transition:all var(--transition-fast)}.btn-switch:hover{background:var(--color-bg-hover)}.mode-dropdown{display:none;position:absolute;top:100%;right:0;margin-top:4px;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;padding:6px;z-index:20}.mode-dropdown.open{display:block}.mode-dropdown-item{padding:8px 12px;border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;transition:background .1s}.mode-dropdown-item:hover{background:var(--color-bg-hover)}.mode-dropdown-item.active{background:var(--color-primary-bg);font-weight:600}.mermaid-container{flex:1 1;padding:var(--space-6);display:flex;align-items:flex-start;justify-content:center;overflow:auto}.mermaid-container svg{max-width:100%;height:auto}.mindmap-loading{position:absolute;inset:0;background:hsla(0,0%,100%,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);z-index:10;animation:fade-in .2s ease}.mindmap-loading .loader{width:36px;height:36px;border:3px solid var(--color-divider);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.mindmap-loading p{color:var(--color-text-secondary)}.mindmap-loading p,.toast{font-size:var(--text-base)}.toast{position:fixed;top:20px;right:20px;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);z-index:100;animation:slide-in-right .3s ease;box-shadow:var(--shadow-lg)}.toast-success{background:var(--color-secondary-bg);border:1px solid var(--color-secondary);color:#2a6f50}.toast-error{background:#fde8e0;border:1px solid var(--color-danger);color:#c04040}@keyframes message-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes typing-dot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes pulse-glow{0%,to{box-shadow:0 2px 8px rgba(232,168,56,.25)}50%{box-shadow:0 4px 20px rgba(232,168,56,.4)}}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes slide-in-right{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}