:root{--bg: #0f1419;--bg-elevated: #141b23;--panel: #1a222c;--text: #e7eef7;--muted: #93a4b8;--accent: #3d9cf0;--accent-database: #3d9cf0;--accent-storage: #3db88a;--accent-ai: #8b7cf6;--border: #2a3644;--danger: #e35d6a;--warn: #e0a24a;--ok: #3db88a;--header-h: 60px;--sidebar-w: 240px;font-family:IBM Plex Sans,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(1200px 600px at 10% -10%,#1c2a3a,var(--bg))}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:var(--accent);text-decoration:none}button,.btn{background:var(--accent);color:#041018;border:0;border-radius:8px;padding:.45rem .8rem;font-weight:600;cursor:pointer;font:inherit}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:transparent;color:var(--text);border:1px solid var(--border)}button.danger{background:var(--danger);color:#fff}button.ghost{background:transparent;color:var(--muted);border:0;padding:.25rem .5rem}input,textarea,select{width:100%;background:#101820;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.5rem .65rem;margin:.35rem 0 .8rem;font:inherit}label{display:block;font-size:.85rem;color:var(--muted)}.muted{color:var(--muted)}.error{color:var(--danger);white-space:pre-wrap}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.row.end{justify-content:flex-end}.row.gap-sm{gap:.5rem}h1{font-size:1.35rem;margin:0 0 .35rem}h2{font-size:1.1rem;margin:0}h3{margin:0 0 .5rem}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.app-sidebar{background:color-mix(in srgb,var(--panel) 92%,black);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1rem .75rem;position:sticky;top:0;height:100vh}.sidebar-brand{padding:.5rem .75rem 1.25rem}.sidebar-brand .brand{font-size:1.15rem;font-weight:700;letter-spacing:.03em}.sidebar-brand .tagline{font-size:.75rem;color:var(--muted);margin-top:.2rem}.nav-section{margin:.75rem 0 .25rem;padding:0 .75rem;font-size:.7rem;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.nav-link{display:block;padding:.45rem .75rem;border-radius:8px;color:var(--text);margin:.1rem 0;opacity:.88}.nav-link:hover{background:color-mix(in srgb,var(--border) 55%,transparent)}.nav-link.active{background:color-mix(in srgb,var(--accent) 22%,transparent);color:#fff;opacity:1}.sidebar-footer{margin-top:auto;padding:.75rem;border-top:1px solid var(--border);font-size:.85rem}.app-main-col{display:flex;flex-direction:column;min-width:0}.app-header{height:var(--header-h);display:flex;align-items:center;gap:1rem;padding:0 1.25rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 85%,black);position:sticky;top:0;z-index:20}.breadcrumb{flex:1;color:var(--muted);font-size:.9rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-search{width:min(280px,30vw);margin:0}.app-content{padding:1.25rem;max-width:1200px;width:100%;margin:0 auto}.banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 1.25rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--panel) 85%,black)}.banner.error{border-color:color-mix(in srgb,var(--danger) 55%,var(--border));color:var(--danger)}.panel{background:color-mix(in srgb,var(--panel) 90%,black);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.page-header,.resource-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.page-actions{display:flex;gap:.5rem;flex-wrap:wrap}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.65rem .4rem;border-bottom:1px solid var(--border);vertical-align:top}tr.clickable{cursor:pointer}tr.clickable:hover{background:color-mix(in srgb,var(--border) 35%,transparent)}.tabs-bar{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1rem;flex-wrap:wrap}.tab{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;padding:.65rem .85rem}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.status-dot{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem}.status-dot i{width:8px;height:8px;border-radius:50%;background:var(--muted);display:inline-block}.status-ok i{background:var(--ok)}.status-warn i{background:var(--warn)}.status-bad i{background:var(--danger)}.badge{display:inline-block;padding:.15rem .45rem;border-radius:6px;font-size:.75rem;border:1px solid var(--border)}.badge-ok{border-color:var(--ok);color:var(--ok)}.badge-warn{border-color:var(--warn);color:var(--warn)}.badge-bad{border-color:var(--danger);color:var(--danger)}.state-block{padding:2rem 1rem;text-align:center}.state-block .spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin:0 auto .75rem;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.stat-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:.9rem 1rem}.stat-card .value{font-size:1.5rem;font-weight:700}.split-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem}.choice-card,.resource-card{border:1px solid var(--border);border-radius:12px;padding:1rem;background:var(--bg-elevated);cursor:pointer;text-align:left}.choice-card:hover,.resource-card:hover{border-color:var(--accent)}.choice-card h3,.resource-card h3{margin:0 0 .35rem}.wizard-steps{display:flex;gap:.5rem;margin-bottom:1.25rem;flex-wrap:wrap}.wizard-step{padding:.35rem .65rem;border-radius:999px;border:1px solid var(--border);font-size:.8rem;color:var(--muted)}.wizard-step.active{border-color:var(--accent);color:var(--text);background:color-mix(in srgb,var(--accent) 18%,transparent)}.wizard-step.done{color:var(--ok);border-color:var(--ok)}.query-layout{display:grid;grid-template-columns:220px 1fr;gap:1rem;min-height:360px}.schema-tree{border:1px solid var(--border);border-radius:10px;padding:.75rem;overflow:auto;max-height:480px}.schema-tree button{display:block;width:100%;text-align:left;background:transparent;color:var(--text);border:0;padding:.25rem .35rem;font-weight:500}.schema-tree .nested{padding-left:.85rem}.code-editor{font-family:IBM Plex Mono,ui-monospace,monospace;min-height:160px;background:#0c1218;border:1px solid var(--border);border-radius:10px}.file-browser{border:1px solid var(--border);border-radius:10px;overflow:hidden}.file-browser-toolbar{display:flex;gap:.5rem;flex-wrap:wrap;padding:.75rem;border-bottom:1px solid var(--border);align-items:center}.chat-layout{display:grid;grid-template-columns:1fr 280px;gap:1rem;min-height:420px}.chat-thread{border:1px solid var(--border);border-radius:10px;padding:1rem;display:flex;flex-direction:column;gap:.75rem;max-height:520px;overflow:auto}.chat-bubble{padding:.65rem .8rem;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border);white-space:pre-wrap}.chat-bubble.user{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.context-panel{border:1px solid var(--border);border-radius:10px;padding:.9rem;background:var(--bg-elevated)}.proposal-box{border:1px dashed var(--accent);border-radius:10px;padding:.85rem;margin-top:.75rem}.modal-backdrop,.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:50;display:flex;align-items:center;justify-content:center}.drawer-backdrop{justify-content:flex-end}.modal{width:min(560px,calc(100vw - 2rem));background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem}.drawer{width:min(420px,100vw);height:100%;background:var(--panel);border-left:1px solid var(--border);padding:1rem;overflow:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.toast{position:fixed;bottom:1.25rem;right:1.25rem;z-index:60;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--border);background:var(--panel)}.toast-error{border-color:var(--danger);color:var(--danger)}.toast-ok{border-color:var(--ok)}@media (max-width: 1024px){.app-shell{grid-template-columns:1fr}.app-sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--border)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-2,.query-layout,.chat-layout{grid-template-columns:1fr}}@media (max-width: 768px){.app-content{padding:.85rem}.page-header,.resource-header{flex-direction:column}.header-search{display:none}.stat-grid{grid-template-columns:1fr 1fr}}
