*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #1a1a1f;--bg-secondary: #22222a;--bg-surface: #2a2a35;--text-primary: #e8e4df;--text-secondary: #9a9590;--text-muted: #6a6560;--accent: #c9a96e;--accent-dim: #8a7a50;--npc-bg: #2d2a24;--player-bg: #1e2a3a;--border: #3a3a44;--danger: #c45050;--success: #50a060}html,body{height:100%;background:var(--bg-primary);color:var(--text-primary);font-family:Inter,-apple-system,sans-serif;font-size:15px;line-height:1.5}#root{height:100%}.app{display:flex;flex-direction:column;height:100vh;max-width:720px;margin:0 auto}.app-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.header-content h1{font-family:Crimson Text,Georgia,serif;font-size:1.5rem;font-weight:600;color:var(--accent);letter-spacing:.02em}.subtitle{font-size:.8rem;color:var(--text-secondary);margin-top:2px}.reset-btn{background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:6px 14px;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s}.reset-btn:hover{border-color:var(--accent-dim);color:var(--text-primary)}.app-main{flex:1;overflow-y:auto;padding:0}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-style:italic}.chat-window{padding:20px;min-height:100%;display:flex;flex-direction:column;gap:16px}.message{max-width:85%;animation:fadeIn .3s ease}.message-npc{align-self:flex-start}.message-player{align-self:flex-end}.message-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;padding-left:2px}.message-npc .message-label{color:var(--accent)}.message-player .message-label{color:var(--text-secondary);text-align:right}.message-content{padding:10px 14px;border-radius:8px;font-size:.95rem;line-height:1.6}.message-npc .message-content{background:var(--npc-bg);border-left:2px solid var(--accent-dim);font-family:Crimson Text,Georgia,serif;font-size:1.05rem}.message-player .message-content{background:var(--player-bg);border-right:2px solid #3a5a7a}.cursor{animation:blink .8s infinite;color:var(--accent);font-weight:700}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.input-bar{display:flex;gap:8px;padding:12px 20px;border-top:1px solid var(--border);background:var(--bg-secondary)}.input-field{flex:1;background:var(--bg-surface);border:1px solid var(--border);color:var(--text-primary);padding:10px 14px;border-radius:6px;font-size:.95rem;font-family:inherit;outline:none;transition:border-color .2s}.input-field:focus{border-color:var(--accent-dim)}.input-field:disabled{opacity:.5;cursor:not-allowed}.input-field::placeholder{color:var(--text-muted)}.send-btn{background:var(--accent-dim);color:var(--text-primary);border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s}.send-btn:hover:not(:disabled){background:var(--accent);color:var(--bg-primary)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.debug-hint{position:fixed;bottom:70px;right:12px;font-size:.65rem;color:var(--text-muted);opacity:.4}.debug-panel{position:fixed;top:0;right:0;width:360px;height:100vh;background:var(--bg-secondary);border-left:1px solid var(--border);overflow-y:auto;padding:16px;z-index:100;font-size:.8rem;animation:slideIn .2s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.debug-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.debug-header h3{font-size:.9rem;color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.debug-close{background:none;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer}.debug-section{margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}.debug-section h4{color:var(--text-secondary);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.debug-section ul{list-style:none;padding-left:0}.debug-section li{padding:3px 0;color:var(--text-primary);font-size:.78rem;line-height:1.4}.debug-empty,.debug-loading{color:var(--text-muted);font-style:italic}.trust-bar{width:100%;height:6px;background:var(--bg-surface);border-radius:3px;overflow:hidden;margin-bottom:4px}.trust-fill{height:100%;background:var(--accent);transition:width .5s ease;border-radius:3px}.trust-value{font-size:.75rem;color:var(--text-secondary)}.mood-badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:.75rem;font-weight:500}.mood-guarded{background:#3a3530;color:#b09070}.mood-warming{background:#2a3530;color:#70b080}.mood-upset{background:#3a2a2a;color:#c06060}.mood-confiding{background:#2a2a3a;color:#7080c0}.mood-suspicious{background:#3a3020;color:#c0a050}.claim-text{color:var(--text-primary)}.claim-meta{color:var(--text-muted);font-size:.7rem}.claim-conflict{color:var(--danger);font-weight:600;font-size:.7rem}.claim-align{color:var(--success);font-weight:600;font-size:.7rem}.knowledge-tier{margin:4px 0}.knowledge-tier summary{cursor:pointer;color:var(--text-secondary);font-size:.78rem;padding:2px 0}.sensitivity{font-size:.65rem;font-weight:600;text-transform:uppercase}.sensitivity-low{color:var(--success)}.sensitivity-medium{color:#c0a050}.sensitivity-high{color:var(--danger)}.header-actions{display:flex;gap:6px;align-items:center}.pill-btn{background:transparent;border:1px solid var(--accent-dim);color:var(--accent);padding:4px 14px;border-radius:20px;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s}.pill-btn:hover{background:var(--accent-dim);color:var(--bg-primary)}.editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center}.editor-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3}.editor-panel{position:relative;width:90vw;max-width:800px;height:80vh;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;animation:fadeIn .2s ease}.editor-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px 12px;border-bottom:1px solid var(--border)}.editor-header h3{font-size:1rem;color:var(--accent);font-weight:600;margin-bottom:2px}.editor-desc{font-size:.75rem;color:var(--text-muted)}.editor-close{background:none;border:none;color:var(--text-secondary);font-size:1.4rem;cursor:pointer;padding:0 4px;line-height:1}.editor-close:hover{color:var(--text-primary)}.editor-textarea{flex:1;margin:0;padding:16px 20px;background:var(--bg-primary);color:var(--text-primary);border:none;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.85rem;line-height:1.6;resize:none;outline:none;overflow-y:auto;-moz-tab-size:2;tab-size:2}.editor-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-style:italic}.editor-footer{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;border-top:1px solid var(--border);gap:12px}.editor-status{font-size:.78rem;flex:1}.editor-status-success{color:var(--success)}.editor-status-error{color:var(--danger)}.editor-actions{display:flex;align-items:center;gap:10px}.editor-shortcut{font-size:.7rem;color:var(--text-muted)}.editor-cancel{background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:6px 16px;border-radius:4px;cursor:pointer;font-size:.8rem}.editor-cancel:hover{border-color:var(--text-muted);color:var(--text-primary)}.editor-save{background:var(--accent-dim);border:none;color:var(--text-primary);padding:6px 20px;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:500;transition:background .2s}.editor-save:hover:not(:disabled){background:var(--accent);color:var(--bg-primary)}.editor-save:disabled{opacity:.4;cursor:not-allowed}.ke-panel{max-width:860px;height:85vh}.ke-tier-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 20px}.ke-tier-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);padding:10px 16px;font-size:.85rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.ke-tier-tab:hover{color:var(--text-primary)}.ke-tier-active{color:var(--accent);border-bottom-color:var(--accent)}.ke-tier-count{background:var(--bg-surface);padding:1px 7px;border-radius:10px;font-size:.7rem;color:var(--text-muted)}.ke-tier-active .ke-tier-count{background:var(--accent-dim);color:var(--text-primary)}.ke-tier-desc{padding:8px 20px;font-size:.75rem;color:var(--text-muted);border-bottom:1px solid var(--border)}.ke-facts-list{flex:1;overflow-y:auto;padding:12px 20px;display:flex;flex-direction:column;gap:12px}.ke-empty{color:var(--text-muted);font-style:italic;text-align:center;padding:40px 0}.ke-fact{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:12px}.ke-fact-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.ke-sensitivity{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:3px 8px;font-size:.75rem;cursor:pointer}.ke-remove{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;padding:0 4px;line-height:1}.ke-remove:hover{color:var(--danger)}.ke-fact-content{width:100%;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:8px 10px;font-family:Inter,sans-serif;font-size:.88rem;line-height:1.5;resize:vertical;outline:none;margin-bottom:6px}.ke-fact-content:focus{border-color:var(--accent-dim)}.ke-fact-content::placeholder{color:var(--text-muted)}.ke-tags{width:100%;background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;padding:5px 10px;font-family:Inter,sans-serif;font-size:.75rem;outline:none}.ke-tags:focus{border-color:var(--accent-dim)}.ke-tags::placeholder{color:var(--text-muted)}.ke-add-row{padding:0 20px 8px}.ke-add-btn{background:transparent;border:1px dashed var(--border);color:var(--text-secondary);width:100%;padding:8px;border-radius:6px;cursor:pointer;font-size:.8rem;transition:all .2s}.ke-add-btn:hover{border-color:var(--accent-dim);color:var(--accent)}@media(max-width:600px){.app{max-width:100%}.debug-panel{width:100%}.message{max-width:92%}}
