:root{--bg-color: #ffffff;--bg-sidebar: #f8fafc;--border-color: #e2e8f0;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--color-ecology: #10b981;--color-tech: #3b82f6;--color-harmony: #8b5cf6;--color-wealth: #d97706;--color-quest: #db2777;--font-sans: "Inter", sans-serif;--font-display: "Outfit", sans-serif;--shadow-float: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -2px rgba(0, 0, 0, .05), 0 0 0 1px rgba(0, 0, 0, .02);--shadow-modal: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04), 0 0 0 1px rgba(0, 0, 0, .05)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-primary);overflow:hidden;height:100vh;width:100vw}#root{height:100vh}.app-container{height:100vh;width:100vw;position:relative}.dashboard-layout{display:flex;height:100vh;width:100vw}.sidebar{width:320px;background:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;height:100vh;overflow-y:auto}.sidebar-section{padding:20px;border-bottom:1px solid var(--border-color)}.sidebar-section h3{font-family:var(--font-display);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}.section-header{display:flex;justify-content:space-between;align-items:center;width:100%}.add-mind-btn{background:#0f172a;color:#fff;border:none;font-size:1.1rem;width:22px;height:22px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .1s ease}.add-mind-btn:hover{background:#1e293b}.agents-list{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-y:auto}.agent-item{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:#fff;border:1px solid var(--border-color);border-radius:6px;font-size:.8rem}.agent-info{display:flex;align-items:center;gap:8px;font-weight:600}.agent-dot{width:8px;height:8px;border-radius:50%}.delete-mind-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:4px}.delete-mind-btn:hover{color:#ef4444;background:#fef2f2}.narrative-text{font-size:.8rem;line-height:1.5;color:var(--text-secondary)}.logs-section{display:flex;flex-direction:column;border-bottom:none;min-height:400px;padding-bottom:30px}.history-logs{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.log-entry{padding:8px 10px;background:#fff;border:1px solid var(--border-color);border-radius:6px;font-size:.75rem;line-height:1.4}.log-entry.talk{border-left:3px solid var(--color-harmony)}.log-entry.build{border-left:3px solid var(--color-tech)}.log-entry.quest{border-left:3px solid var(--color-quest);background:#fdf2f8;border-color:#fbcfe8}.log-entry.system{border-left:3px solid var(--text-muted)}.log-entry.rate_limit{border-left:3px solid #ef4444;background:#fef2f2;border-color:#fee2e2}.log-header{display:flex;justify-content:space-between;margin-bottom:2px;font-weight:700;font-size:.7rem}.main-content{flex:1;position:relative;height:100vh}.canvas-container{width:100%;height:100%;background:#fff}.floating-metrics{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#fff;border:1px solid var(--border-color);padding:8px 20px;border-radius:99px;display:flex;gap:20px;box-shadow:var(--shadow-float);z-index:5}.metric-item{font-size:.8rem;font-weight:700;display:flex;align-items:center;gap:6px}.metric-item.eco{color:var(--color-ecology)}.metric-item.tech{color:var(--color-tech)}.metric-item.harm{color:var(--color-harmony)}.metric-item.wealth{color:var(--color-wealth)}.floating-controls{position:absolute;top:20px;right:20px;display:flex;gap:8px;z-index:5}.circle-btn{width:36px;height:36px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border-color);color:var(--text-secondary);box-shadow:var(--shadow-float);transition:all .15s ease}.circle-btn:hover{background:#f8fafc;color:var(--text-primary);border-color:#cbd5e1}.circle-btn.danger-btn:hover{background:#fef2f2;color:#dc2626;border-color:#fca5a5}.floating-quest-bar{position:absolute;bottom:24px;left:50%;transform:translate(-50%);width:100%;max-width:500px;background:#fff;border:1px solid var(--border-color);border-radius:99px;padding:4px 6px 4px 16px;box-shadow:var(--shadow-float);z-index:5}.quest-form{display:flex;align-items:center;width:100%}.quest-form input{flex:1;border:none;background:transparent;padding:8px 0;margin:0;font-size:.85rem;color:var(--text-primary)}.quest-form input:focus{outline:none;box-shadow:none}.quest-form button{background:#0f172a;color:#fff;border:none;border-radius:99px;padding:6px 14px;font-size:.8rem}.quest-form button:hover{background:#1e293b}.active-quest-pill{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#9d174d;background:#fdf2f8;padding:6px 12px;border-radius:99px;border:1px solid #fbcfe8;font-weight:500;justify-content:center}.innovations-deck{display:flex;flex-wrap:wrap;gap:6px;max-height:90px;overflow-y:auto}.innov-badge{font-size:.7rem;padding:4px 8px;background:#fff;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-weight:600;color:var(--color-quest)}.innov-badge:hover{border-color:#cbd5e1;background:#fdf2f8}label{display:block;font-size:.75rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;margin-top:10px}input,textarea,select{width:100%;padding:8px 12px;background:#fff;border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:var(--font-sans);font-size:.85rem;transition:all .15s ease;margin-bottom:10px}input:focus,textarea:focus,select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}button.primary{background:#0f172a;color:#fff;border:none;font-weight:700;font-size:.8rem;padding:8px 16px;border-radius:6px;cursor:pointer;transition:background .15s ease}button.primary:hover{background:#1e293b}button.primary:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a26;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:440px;box-shadow:var(--shadow-modal);overflow:hidden;display:flex;flex-direction:column}.modal-content.large{max-width:600px}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background:#fafafa}.modal-header h2{font-family:var(--font-display);font-size:1rem;font-weight:800}.close-modal-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px}.close-modal-btn:hover{color:var(--text-primary)}.modal-body{padding:20px;max-height:75vh;overflow-y:auto}.advanced-toggle{font-size:.75rem;font-weight:700;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:4px;margin-top:4px;margin-bottom:8px;-webkit-user-select:none;user-select:none}.advanced-toggle:hover{color:var(--text-primary)}.blueprint-md{background:#f8fafc;border:1px solid var(--border-color);padding:16px;border-radius:8px;font-size:.8rem;line-height:1.6}.blueprint-md h1,.blueprint-md h2,.blueprint-md h3{font-family:var(--font-display);margin-top:12px;margin-bottom:6px;color:#0f172a}.blueprint-md h1{font-size:1.1rem;border-bottom:1px solid var(--border-color);padding-bottom:4px}.blueprint-md h2{font-size:.95rem}.blueprint-md p{margin-bottom:8px;color:var(--text-secondary)}.blueprint-md ul{margin-left:16px;margin-bottom:8px;color:var(--text-secondary)}.spinner{width:10px;height:10px;border:2px solid rgba(219,39,119,.2);border-left-color:var(--color-quest);border-radius:50%;animation:spin 1s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%{transform:scale(.95);opacity:.5}50%{transform:scale(1);opacity:1}to{transform:scale(.95);opacity:.5}}
