:root{--bg: #ffffff;--bg-alt: #f5f6f8;--border: #e0e2e6;--text: #1c1e21;--text-muted: #6b7280;--accent: #2563eb;--tier-read: #16a34a;--tier-write: #d97706;--tier-destructive: #dc2626;--danger-bg: #fef2f2;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #16181d;--bg-alt: #1e2127;--border: #2c2f36;--text: #e6e7ea;--text-muted: #9aa0a8;--danger-bg: #2a1717}}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.app{display:flex;height:100vh}.sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--border);background:var(--bg-alt);padding:16px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.sidebar h1{font-size:16px;margin:0;letter-spacing:.02em}.sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.sidebar-logout{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:6px;padding:4px 8px;cursor:pointer;font-size:11px}.sidebar-logout:hover{color:var(--text);border-color:var(--accent)}.connection-list{display:flex;flex-direction:column;gap:4px}.connection-item{display:flex;align-items:center;border-radius:6px;overflow:hidden}.connection-item.active{background:var(--accent);color:#fff}.connection-item-select{flex:1;display:flex;justify-content:space-between;align-items:center;background:transparent;border:none;color:inherit;padding:8px 10px;cursor:pointer;font-size:13px;text-align:left}.connection-type{font-size:11px;opacity:.7;text-transform:uppercase}.connection-item-delete{background:transparent;border:none;color:inherit;opacity:.6;cursor:pointer;padding:8px;font-size:14px}.connection-item-delete:hover{opacity:1}.add-connection-btn,.form-actions button,.chat-input button,.confirm-panel button,.schema-panel button,.procedures-panel button:not(.schema-btn-secondary){background:var(--accent);color:#fff;border:none;border-radius:6px;padding:8px 12px;cursor:pointer;font-size:13px}.add-connection-btn:hover,.chat-input button:hover,.procedures-panel button:not(.schema-btn-secondary):hover:not(:disabled){opacity:.9}.procedures-panel button:not(.schema-btn-secondary):disabled{opacity:.5;cursor:not-allowed}.connection-form{display:flex;flex-direction:column;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;font-size:13px}.connection-form h3{margin:0 0 4px;font-size:14px}.connection-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.connection-form input:not([type=checkbox]){width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-size:13px}.form-row{display:flex;gap:8px}.form-row>label{flex:1;min-width:0}.port-field{flex:0 0 90px}.checkbox-field{flex-direction:row!important;align-items:center;gap:6px!important}.form-actions{display:flex;justify-content:flex-end;gap:8px}.form-actions button[type=button]{background:transparent;color:var(--text);border:1px solid var(--border)}.form-error{color:var(--tier-destructive);font-size:12px}.main{flex:1;display:flex;flex-direction:column;min-width:0}.main-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border)}.main-header h2{margin:0;font-size:15px}.tabs{display:flex;gap:4px}.tabs button{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:12px}.tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.main-body{flex:1;overflow-y:auto;padding:20px}.main-empty{display:flex;align-items:center;justify-content:center;height:100%}.chat-empty{color:var(--text-muted);font-size:13px;padding:8px 0}.query-chat{display:flex;flex-direction:column;height:100%}.query-chat-toolbar{display:flex;justify-content:flex-end;padding-bottom:8px}.chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding-bottom:12px}.msg{max-width:720px;padding:10px 14px;border-radius:8px;font-size:13px}.msg-user{align-self:flex-end;background:var(--accent);color:#fff}.msg-clarify{background:var(--bg-alt);border:1px solid var(--border)}.msg-error{background:var(--danger-bg);color:var(--tier-destructive);border:1px solid var(--tier-destructive)}.msg-query{background:var(--bg-alt);border:1px solid var(--border);width:100%;max-width:900px}.query-header{margin-bottom:6px}.tier-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;color:#fff;text-transform:uppercase;letter-spacing:.03em}.tier-badge.tier-read{background:var(--tier-read)}.tier-badge.tier-write{background:var(--tier-write)}.tier-badge.tier-destructive{background:var(--tier-destructive)}.sql-preview{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 10px;overflow-x:auto;font-size:12.5px;white-space:pre-wrap}.query-reason{color:var(--text-muted);font-size:12px;margin-top:4px}.assumptions{margin:6px 0 0;padding-left:18px;font-size:12px;color:var(--text-muted)}.confirm-panel{margin-top:10px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.typed-confirm label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.typed-confirm input{padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text)}.confirm-panel button:disabled{opacity:.5;cursor:not-allowed}.query-status{margin-top:8px;font-size:12px}.query-blocked,.query-error{color:var(--tier-destructive)}.query-done{color:var(--tier-read);margin-bottom:4px}.chat-input{display:flex;gap:8px;border-top:1px solid var(--border);padding-top:12px}.chat-input input{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:13px}.results-table-wrap,.history-table-wrap{overflow-x:auto;margin-top:8px;border:1px solid var(--border);border-radius:6px}.results-table{border-collapse:collapse;width:100%;font-size:12.5px}.results-table th,.results-table td{padding:6px 10px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.results-table th{background:var(--bg-alt);position:sticky;top:0}.history-table td code{font-size:11.5px}.history-row-error{background:var(--danger-bg)}.cell-null{color:var(--text-muted);font-style:italic}.json-toggle{background:transparent;border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:11px;color:var(--accent);padding:1px 6px}.json-expanded pre{margin:4px 0 0;background:var(--bg);border:1px solid var(--border);padding:6px;border-radius:4px;max-width:400px;white-space:pre-wrap}.results-empty,.panel-loading{color:var(--text-muted);font-size:13px}.schema-panel{display:flex;flex-direction:column;gap:14px;max-width:900px}.schema-toolbar{display:flex;gap:8px;position:sticky;top:0;background:var(--bg);padding-bottom:10px;z-index:1}.schema-search{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:13px}.schema-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.schema-btn-secondary{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 12px;cursor:pointer;font-size:13px;white-space:nowrap}.schema-btn-secondary:hover:not(:disabled){background:var(--bg-alt);border-color:var(--accent)}.schema-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.schema-meta{font-size:12px;color:var(--text-muted)}.schema-highlight{background:color-mix(in srgb,var(--accent) 35%,transparent);color:inherit;border-radius:3px;padding:0 1px}.schema-group{display:flex;flex-direction:column;gap:8px;border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:box-shadow .15s ease,border-color .15s ease}.schema-group:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.schema-group-header{display:flex;align-items:center;gap:8px;width:100%;background:var(--bg-alt);border:none;color:var(--text);padding:10px 12px;cursor:pointer;font-size:13px;text-align:left}.schema-group-name{font-weight:600;letter-spacing:.01em}.schema-group-body{display:flex;flex-direction:column;gap:8px;padding:0 10px 10px}.schema-chevron{display:inline-block;color:var(--text-muted);transition:transform .15s ease;font-size:11px}.schema-chevron.collapsed{transform:rotate(-90deg)}.schema-count-badge{font-size:11px;font-weight:600;background:var(--accent);color:#fff;border-radius:999px;padding:1px 8px;margin-left:auto;flex-shrink:0}.schema-count-badge-alt{background:transparent;border:1px solid var(--border);color:var(--text-muted);font-weight:500;margin-left:0}.schema-header-badges{display:flex;gap:6px;margin-left:auto;flex-shrink:0}.schema-table-card{border:1px solid var(--border);border-radius:6px;background:var(--bg);overflow:hidden;transition:box-shadow .15s ease,border-color .15s ease}.schema-table-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 1px 4px #0000000f}.schema-table-header-row{display:flex;align-items:stretch}.schema-table-header{display:flex;align-items:center;gap:8px;flex:1;min-width:0;background:transparent;border:none;color:var(--text);padding:8px 10px;cursor:pointer;font-size:13px;text-align:left}.schema-table-name{font-weight:500;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.schema-table-menu-wrap{position:relative;flex-shrink:0}.schema-kebab-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:0 10px;height:100%;line-height:1}.schema-kebab-btn:hover{color:var(--text);background:var(--bg-alt)}.schema-kebab-menu{position:absolute;top:calc(100% + 2px);right:4px;background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:5;min-width:140px;overflow:hidden}.schema-kebab-menu button{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:8px 12px;cursor:pointer;font-size:12.5px}.schema-kebab-menu button:hover{background:var(--bg-alt)}.schema-meta-inline{font-weight:400;color:var(--text-muted)}.records-panel{flex-shrink:0;position:relative;border-left:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;min-width:0}.records-panel-resize-handle{position:absolute;left:-4px;top:0;bottom:0;width:8px;cursor:col-resize;z-index:10}.records-panel-resize-handle:hover,.records-panel-resize-handle:active{background:color-mix(in srgb,var(--accent) 35%,transparent)}.records-panel-header{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border)}.records-panel-toolbar{padding:10px 14px;border-bottom:1px solid var(--border)}.records-panel-toolbar .schema-search{width:100%}.records-panel-title{display:flex;flex-direction:column;gap:2px;margin-right:auto;min-width:0}.records-panel-table{font-weight:600;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.records-panel-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.records-panel-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:20px;line-height:1;padding:2px 6px}.records-panel-close:hover{color:var(--text)}.records-panel-body{flex:1;overflow:auto;padding:12px 14px}.schema-table-body{padding:0 10px 10px;border-top:1px solid var(--border)}.schema-columns-table{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:8px}.schema-columns-table th{text-align:left;color:var(--text-muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:4px 8px 4px 0;border-bottom:1px solid var(--border)}.schema-columns-table td{padding:4px 8px 4px 0;border-bottom:1px solid var(--border)}.schema-columns-table tr:last-child td{border-bottom:none}.schema-columns-table tbody tr:hover{background:var(--bg-alt)}.schema-col-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.schema-type{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.schema-pk,.schema-nn{margin-right:6px;font-size:10px;border:1px solid var(--border);border-radius:4px;padding:0 4px;color:var(--text-muted);display:inline-block}.schema-fk-pill{margin-right:6px;font-size:10px;border-radius:4px;padding:0 4px;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-block;cursor:help}.schema-default{margin-right:6px;font-size:10px;border:1px dashed var(--border);border-radius:4px;padding:0 4px;color:var(--text-muted);display:inline-block;cursor:help}.schema-section-toggle{background:transparent;padding:0;width:auto}.schema-index-list{margin:8px 0 0;padding:0;list-style:none;font-size:12px;display:flex;flex-direction:column;gap:4px}.schema-index-list li{display:flex;align-items:center;gap:8px}.schema-diff-result{margin-top:4px;border-top:1px solid var(--border);padding-top:10px;display:flex;flex-direction:column;gap:8px}.procedures-panel{display:flex;flex-direction:column;gap:16px;max-width:780px}.procedures-section{display:flex;flex-direction:column;gap:10px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.procedures-section-header{display:flex;align-items:center;gap:8px;background:var(--bg-alt);padding:10px 14px;border-bottom:1px solid var(--border)}.procedures-section-header h3{margin:0;font-size:13px;font-weight:600}.procedures-section-header-action{margin-left:auto}.procedures-section-body{display:flex;flex-direction:column;gap:10px;padding:14px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.status-dot.status-on{background:var(--tier-read)}.status-dot.status-off{background:var(--text-muted)}.procedures-github-status,.procedures-repo-linked{display:flex;align-items:center;gap:8px;font-size:13px}.procedures-github-status>span,.procedures-repo-linked>span{display:flex;align-items:center;gap:8px;margin-right:auto}.procedures-link-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.procedures-link-form select{padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-size:13px;flex:1;min-width:200px}.procedures-link-form input{width:130px}.procedures-list{margin:0;padding:0;list-style:none;font-size:12.5px;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:6px;overflow:hidden}.procedures-list li{display:flex;align-items:baseline;gap:10px;padding:7px 10px;border-bottom:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.procedures-list li:last-child{border-bottom:none}.procedures-list li:hover{background:var(--bg-alt)}.procedures-list li.chat-empty{font-family:inherit}.procedures-generate-form{display:flex;flex-direction:column;gap:8px}.procedures-generate-form textarea{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:13px;font-family:inherit;resize:vertical}.procedures-generate-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.procedures-generate-form button{align-self:flex-start}.procedures-preview{margin-top:4px;border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:8px}.procedures-preview-header{display:flex;align-items:center;gap:8px}.procedures-preview-check{color:var(--tier-read);font-weight:700}.procedures-preview-actions{display:flex;gap:8px;flex-wrap:wrap}.login-page{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-alt)}.login-form{display:flex;flex-direction:column;gap:12px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:28px;width:280px}.login-form h1{margin:0 0 4px;font-size:18px;text-align:center;letter-spacing:.02em}.login-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.login-form input{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:13px}.login-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.login-form button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:9px 12px;cursor:pointer;font-size:13px;margin-top:4px}.login-form button:disabled{opacity:.5;cursor:not-allowed}.msg-review{background:var(--bg-alt);border:1px solid var(--border);width:100%;max-width:900px;display:flex;flex-direction:column;gap:10px}.review-header{display:flex;align-items:center;gap:10px}.review-score{font-size:22px;font-weight:700}.review-score-max{font-size:13px;font-weight:500;color:var(--text-muted)}.risk-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;color:#fff;text-transform:uppercase;letter-spacing:.03em}.risk-badge.risk-low{background:var(--tier-read)}.risk-badge.risk-medium{background:var(--tier-write)}.risk-badge.risk-high{background:var(--tier-destructive)}.risk-badge.risk-critical{background:color-mix(in srgb,var(--tier-destructive) 80%,black)}.review-summary{margin:0;font-size:13px}.review-section h4{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:1px solid var(--border);padding-bottom:4px}.review-section ul{margin:0;padding-left:18px;font-size:12.5px;display:flex;flex-direction:column;gap:4px}.review-action-plan{padding-left:0;list-style:none}.review-action-plan li{display:flex;align-items:baseline;gap:8px}.action-priority{font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.02em;color:#fff;flex-shrink:0}.action-priority-high{background:var(--tier-destructive)}.action-priority-medium{background:var(--tier-write)}.action-priority-low{background:var(--tier-read)}.login-form button:hover:not(:disabled){opacity:.9}.msg-sandbox{background:var(--bg-alt);border:1px solid var(--border);width:100%;max-width:900px}.msg-sandbox.sandbox-failed{border-color:var(--tier-destructive)}.sandbox-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.02em;margin-right:8px}.sandbox-failed .sandbox-badge{background:var(--tier-destructive)}
