:root{--bg: #f4f6fa;--card: #ffffff;--text: #1c2333;--muted: #6b7280;--accent: #4f7cff;--danger: #e5484d;--warn: #b45309;--ok: #15803d;--border: #e2e6ee;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;padding:10px 24px;background:var(--card);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:18px;color:var(--accent)}.topbar nav{display:flex;gap:8px;margin-left:auto}main{flex:1;max-width:1100px;width:100%;margin:0 auto;padding:20px 16px}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.card h1,.card h2,.card h3{margin-top:0}button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;cursor:pointer}button:disabled{opacity:.55;cursor:default}button.nav{background:transparent;color:var(--text)}button.nav.active{background:var(--accent);color:#fff}button.link{background:none;color:var(--accent);padding:2px 4px;text-decoration:underline}button.danger-icon{margin-left:auto;background:none;color:var(--danger);border:1px solid var(--danger);border-radius:6px;padding:2px 9px;font-size:14px;line-height:1.4}button.danger-icon:hover{background:#fdecec}input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;margin-top:4px}label{display:block;font-size:13px;color:var(--muted);margin-bottom:10px}.row{display:flex;gap:12px}.row>label{flex:1}.alert{background:#fdecec;color:var(--danger);border:1px solid #f6c8ca;border-radius:6px;padding:10px 12px;margin-bottom:12px;font-size:14px}.muted{color:var(--muted);font-size:13px}.warn{color:var(--warn);font-size:12px;margin-left:8px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{width:360px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media (max-width: 760px){.two-col{grid-template-columns:1fr}}.list{list-style:none;margin:0;padding:0}.list li{padding:8px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.list li:last-child{border-bottom:none}.status{font-size:11px;border-radius:10px;padding:2px 8px;background:#eef2ff;color:var(--accent)}.status.active,.status.success{background:#e7f6ec;color:var(--ok)}.status.pending,.status.llm_error{background:#fff4e0;color:var(--warn)}.status.error,.status.rejected{background:#fdecec;color:var(--danger)}.workspace{display:flex;flex-direction:column}.ask-card form{display:flex;gap:8px;align-items:flex-start;margin-top:10px}.ask-card textarea{flex:1;resize:vertical}.ask-card button[type=submit]{margin-top:0}.loading{display:flex;align-items:center;gap:10px;color:var(--muted);margin-bottom:16px;font-size:14px}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result-meta{font-size:13px;color:var(--muted);margin-bottom:8px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border:1px solid var(--border);padding:6px 10px;text-align:left;white-space:nowrap}th{background:#f8fafc}.sql-block pre{background:#0f172a;color:#d8e2ff;padding:12px;border-radius:8px;overflow-x:auto;font-size:13px;margin:10px 0}.history-item{max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
