:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-tertiary:#1a1a26;--bg-hover:#22222e;--border:#2a2a3a;--text-primary:#e0e0e8;--text-secondary:#8888a0;--text-muted:#555570;--accent:#c8a04c;--accent-hover:#d4b060;--node-normal:#5c5c70;--node-allocated:#c8a04c;--node-notable:#e8d070;--node-keystone:#ff6040;--node-highlight:#40d060;--node-remove:#ff4040;--link-inactive:#333346;--link-active:#907830;--gem-active:#2070c0;--gem-support:#3898d0;--rarity-normal:#c8c8c8;--rarity-magic:#88f;--rarity-rare:#ff7;--rarity-unique:#af6025;--scrollbar-thumb:#3a3a4a;--scrollbar-track:#12121a}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);font-family:Segoe UI,Inter,-apple-system,sans-serif;font-size:14px;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}button{cursor:pointer;color:inherit;font:inherit;background:0 0;border:none}input,textarea{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);font:inherit;border-radius:4px;outline:none;padding:8px 12px}input:focus,textarea:focus{border-color:var(--accent)}.message-list{flex-direction:column;flex:1;gap:12px;padding:12px;display:flex;overflow-y:auto}.message-list.empty{justify-content:center;align-items:center;display:flex}.empty-state{text-align:center;color:var(--text-secondary);padding:24px}.empty-state h3{color:var(--accent);margin-bottom:12px;font-size:18px}.empty-state p{margin-bottom:16px;line-height:1.5}.empty-state ul{text-align:left;list-style:none;display:inline-block}.empty-state li{color:var(--text-muted);padding:4px 0}.empty-state li:before{content:"•";color:var(--accent)}.message{border-radius:8px;max-width:95%;padding:10px 14px}.message-user{background:var(--bg-tertiary);border:1px solid var(--border);align-self:flex-end}.message-assistant{background:var(--bg-primary);border:1px solid var(--border);align-self:flex-start}.message-role{color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:600}.message-user .message-role{color:var(--accent)}.message-content{white-space:pre-wrap;word-break:break-word;line-height:1.5}.cursor-blink{color:var(--accent);animation:.8s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.action-bubble{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;margin-top:10px;overflow:hidden}.action-bubble-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:8px 12px 4px;font-size:11px;font-weight:700}.action-bubble-list{flex-direction:column;gap:2px;padding:4px 8px;display:flex}.action-item{background:var(--bg-primary);border-left:3px solid;border-radius:0 4px 4px 0;align-items:flex-start;gap:8px;padding:6px 8px;display:flex}.action-icon{width:20px;height:20px;color:var(--bg-primary);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:inline-flex}.action-detail{flex-direction:column;gap:1px;min-width:0;display:flex}.action-label{color:var(--text-primary);font-size:12px;font-weight:600}.action-reason{color:var(--text-secondary);font-size:11px;line-height:1.3}.action-node-link{text-underline-offset:2px;text-align:left;cursor:pointer;font-size:12px;font-weight:600;text-decoration:underline;transition:opacity .15s}.action-node-link:hover{opacity:.7}.action-gem{color:var(--gem-support);font-size:11px}.action-visualize-btn{background:var(--bg-hover);border-top:1px solid var(--border);width:100%;color:var(--accent);text-align:center;padding:8px;font-size:12px;font-weight:600;transition:background .15s;display:block}.action-visualize-btn:hover{background:var(--accent);color:var(--bg-primary)}.message-input-container{border-top:1px solid var(--border);background:var(--bg-tertiary);gap:8px;padding:12px;display:flex}.message-input{resize:none;flex:1;min-height:38px;max-height:150px;font-size:14px;line-height:1.4}.send-btn{background:var(--accent);color:var(--bg-primary);border-radius:4px;align-self:flex-end;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.conv-list-overlay{z-index:10;background:#00000080;position:absolute;inset:0}.conv-list{background:var(--bg-secondary);border:1px solid var(--border);z-index:11;border-radius:0 0 8px 8px;flex-direction:column;max-height:calc(100% - 120px);display:flex;position:absolute;top:52px;left:0;right:0;overflow:hidden}.conv-list-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.conv-list-header h3{color:var(--text-secondary);font-size:14px}.conv-new-btn{background:var(--accent);color:var(--bg-primary);border-radius:4px;padding:4px 12px;font-size:12px;font-weight:600}.conv-list-items{max-height:300px;overflow-y:auto}.conv-empty{text-align:center;color:var(--text-muted);padding:24px}.conv-item{text-align:left;border-bottom:1px solid var(--border);justify-content:space-between;width:100%;padding:10px 16px;transition:background .15s;display:flex}.conv-item:hover{background:var(--bg-hover)}.conv-item.active{background:var(--bg-tertiary);border-left:3px solid var(--accent)}.conv-item-title{color:var(--text-primary);font-size:13px}.conv-item-date{color:var(--text-muted);font-size:11px}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;width:360px;max-width:90vw;padding:24px}.modal h3{color:var(--accent);margin-bottom:16px}.field-label{color:var(--text-secondary);margin-top:12px;margin-bottom:4px;font-size:12px;display:block}.field-input{width:100%}.field-select{background:var(--bg-tertiary);border:1px solid var(--border);width:100%;color:var(--text-primary);font:inherit;border-radius:4px;padding:8px 12px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.modal-btn{border-radius:4px;padding:8px 16px;font-size:13px;font-weight:600}.modal-btn.cancel{background:var(--bg-tertiary);border:1px solid var(--border)}.modal-btn.save{background:var(--accent);color:var(--bg-primary)}.build-import{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;padding:8px 12px;display:flex}.build-import-input{flex:1;min-width:150px;padding:6px 10px;font-size:12px}.build-import-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--accent);border-radius:4px;padding:6px 14px;font-size:12px;font-weight:600;transition:background .15s}.build-import-btn:hover:not(:disabled){background:var(--bg-hover)}.build-import-btn:disabled{opacity:.4}.build-import-error{color:#ff6060;width:100%;padding-top:4px;font-size:11px}.chat-header{border-bottom:1px solid var(--border);background:var(--bg-tertiary);align-items:center;gap:8px;padding:12px 16px;display:flex}.chat-title{color:var(--accent);text-align:center;flex:1;font-size:16px;font-weight:600}.chat-header-btn{width:32px;height:32px;color:var(--text-secondary);border-radius:4px;justify-content:center;align-items:center;font-size:18px;transition:background .15s,color .15s;display:flex}.chat-header-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.skill-tree-container{cursor:grab;width:100%;height:100%;position:relative;overflow:hidden}.skill-tree-container:active{cursor:grabbing}.skill-tree-canvas{width:100%;height:100%;display:block}.tree-tooltip{background:var(--bg-secondary);border:1px solid var(--border);pointer-events:none;z-index:20;border-radius:6px;max-width:280px;padding:8px 12px;position:absolute;box-shadow:0 4px 12px #00000080}.tooltip-name{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600}.tooltip-stat{color:var(--text-secondary);font-size:12px;line-height:1.4}.tooltip-allocated{color:var(--accent);margin-top:4px;font-size:11px;font-weight:600}.tag{text-transform:uppercase;border-radius:3px;margin-right:6px;padding:1px 5px;font-size:10px;font-weight:600;display:inline-block}.tag-keystone{color:#ff6040;background:#ff604030}.tag-notable{color:#e8d070;background:#e8d07030}.tag-jewel{color:#40c8c8;background:#40c8c830}.tree-loading{color:var(--text-muted);justify-content:center;align-items:center;font-size:16px;display:flex;position:absolute;inset:0}.tree-loading-sprites{color:var(--text-muted);background:var(--bg-secondary);border-radius:4px;padding:4px 8px;font-size:11px;position:absolute;bottom:8px;right:12px}.gem-setup-list{flex-direction:column;gap:8px;display:flex}.gem-empty{color:var(--text-muted);padding:8px;font-size:12px}.gem-group{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;padding:8px}.gem-group.selected{border-color:var(--accent)}.gem-group-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.gem-group-label{color:var(--text-primary);font-size:12px;font-weight:600}.gem-group-slot{color:var(--text-muted);font-size:10px}.gem-main-tag{background:var(--accent);color:var(--bg-primary);text-transform:uppercase;border-radius:3px;padding:1px 6px;font-size:9px;font-weight:700}.gem-list{flex-direction:column;gap:2px;display:flex}.gem-item{border-radius:3px;justify-content:space-between;align-items:center;padding:3px 6px;font-size:12px;display:flex}.gem-item.active{background:#2070c01f}.gem-item.support{background:#3898d014}.gem-item.active .gem-name{color:var(--gem-active);font-weight:600}.gem-item.support .gem-name{color:var(--gem-support)}.gem-info{color:var(--text-muted);white-space:nowrap;font-size:11px}.build-panel{padding:12px 16px}.build-panel.empty{height:100%;color:var(--text-muted);text-align:center;justify-content:center;align-items:center;padding:24px;display:flex}.build-header{margin-bottom:12px}.build-character{align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.build-class{color:var(--accent);font-size:18px;font-weight:700}.build-level{color:var(--text-secondary);font-size:13px}.build-tags{flex-wrap:wrap;gap:4px;display:flex}.btag{text-transform:uppercase;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:600}.btag.caster{color:#4090e0;background:#2070c030}.btag.attacker{color:#e06040;background:#c0402030}.btag.summoner{color:#60c060;background:#40a04030}.btag.defence{color:#a0a0b0;background:#80808020}.btag.weapon{color:#c09050;background:#80604020}.spec-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:12px;padding-bottom:8px;display:flex}.spec-tab{color:var(--text-secondary);border-radius:4px;padding:4px 12px;font-size:12px;transition:background .15s}.spec-tab:hover{background:var(--bg-hover)}.spec-tab.active{background:var(--bg-tertiary);color:var(--accent);font-weight:600}.build-section{margin-bottom:16px}.section-title{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;margin-bottom:8px;font-size:12px}.item-grid{flex-direction:column;gap:4px;display:flex}.item-slot{background:var(--bg-tertiary);border-left:2px solid var(--text-muted);border-radius:3px;justify-content:space-between;padding:4px 8px;font-size:12px;display:flex}.item-slot.rarity-magic{border-left-color:var(--rarity-magic)}.item-slot.rarity-rare{border-left-color:var(--rarity-rare)}.item-slot.rarity-unique{border-left-color:var(--rarity-unique)}.item-slot-name{color:var(--text-secondary);min-width:100px}.item-name{color:var(--text-primary);text-align:right}.stats-grid{flex-direction:column;gap:2px;display:flex}.stat-row{justify-content:space-between;padding:2px 8px;font-size:12px;display:flex}.stat-key{color:var(--text-secondary)}.stat-val{color:var(--text-primary);font-weight:500}.app-layout{width:100vw;height:100vh;display:flex;overflow:hidden}.panel-chat{border-right:1px solid var(--border);background:var(--bg-secondary);flex-direction:column;width:33.333%;min-width:320px;max-width:480px;height:100%;display:flex}.panel-right{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.panel-tree{background:var(--bg-primary);min-height:0;position:relative}.panel-divider{background:var(--border);cursor:row-resize;flex-shrink:0;height:5px;transition:background .15s}.panel-divider:hover{background:var(--accent)}.panel-build{background:var(--bg-secondary);min-height:0;overflow-y:auto}@media (width<=900px){.app-layout{flex-direction:column}.panel-chat{border-right:none;border-bottom:1px solid var(--border);width:100%;max-width:none;height:50%}.panel-right{height:50%}}
