*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d27;--surface-hover:#22253a;--border:#2a2d3e;--text:#e1e4ed;--text-muted:#8b8fa3;--primary:#6366f1;--primary-hover:#818cf8;--danger:#ef4444;--danger-hover:#f87171;--success:#22c55e;--radius:8px;--sidebar-w:220px}body,#main{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}#main{width:100%}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;padding:1rem 0;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{color:var(--primary);letter-spacing:.05em;padding:.5rem 1.25rem 1.5rem;font-size:1.5rem;font-weight:700}.sidebar-link{color:var(--text-muted);padding:.625rem 1.25rem;font-size:.875rem;text-decoration:none;transition:all .15s;display:block}.sidebar-link:hover{color:var(--text);background:var(--surface-hover)}.content{margin-left:var(--sidebar-w);width:calc(100% - var(--sidebar-w));flex:1;padding:2rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}h1{margin-bottom:1rem;font-size:1.5rem;font-weight:600}h2{margin:1.5rem 0 .75rem;font-size:1.125rem;font-weight:600}h3{margin-bottom:.5rem;font-size:1rem;font-weight:600}.cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.card p{color:var(--text-muted);margin-bottom:.75rem;font-size:.875rem}.card a{color:var(--primary);font-size:.875rem;font-weight:500;text-decoration:none}.card a:hover{color:var(--primary-hover)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.5rem;padding:1.25rem}.table{border-collapse:collapse;width:100%;font-size:.875rem}.table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;padding:.625rem .75rem;font-size:.75rem;font-weight:500}.table td{border-bottom:1px solid var(--border);padding:.625rem .75rem}.table tr:hover td{background:var(--surface-hover)}.table code{color:var(--text-muted);font-family:JetBrains Mono,Fira Code,monospace;font-size:.8125rem}.actions{gap:.5rem;display:flex}.badge{background:var(--surface-hover);border-radius:4px;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;align-items:center;padding:.5rem 1rem;font-size:.875rem;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{background:var(--surface-hover)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:rgba(239,68,68,.1)}.btn-sm{padding:.25rem .625rem;font-size:.8125rem}.btn:disabled{opacity:.5;cursor:not-allowed}.form{max-width:640px}.form-group{flex:1;margin-bottom:1rem}.form-group label{color:var(--text-muted);margin-bottom:.375rem;font-size:.8125rem;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);padding:.5rem .75rem;font-family:inherit;font-size:.875rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);outline:none}.form-row{gap:1rem;display:flex}.form-actions{gap:.75rem;margin-top:1.5rem;display:flex}.alert{border-radius:var(--radius);margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.alert-danger{color:var(--danger);background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3)}.error{color:var(--danger)}.chip{border-radius:9999px;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.chip-green{color:var(--success);background:rgba(34,197,94,.1)}.chip-purple{color:#a78bfa;background:rgba(168,85,247,.1)}.chip-muted{background:var(--surface-hover);color:var(--text-muted)}.chip-list{flex-wrap:wrap;gap:.375rem;display:flex}.info-grid{grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem;display:grid}.info-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.125rem;font-size:.6875rem;font-weight:600;display:block}.cap-section{margin-top:1rem}.cap-section .info-label{margin-bottom:.5rem}.separator{background:var(--border);height:1px;margin:1.5rem 0}.mono{word-break:break-all;font-family:JetBrains Mono,Fira Code,monospace;font-size:.8125rem}.font-medium{font-weight:500}.text-muted{color:var(--text-muted)}.text-right{text-align:right}.page-back{margin-bottom:1.5rem}.page-back h1{margin-top:.5rem}.back-link{color:var(--text-muted);font-size:.875rem;text-decoration:none}.back-link:hover{color:var(--text)}.form-wide{max-width:768px}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:4rem 0;display:flex}.empty-state p{color:var(--text-muted);max-width:420px}.loading{color:var(--text-muted);text-align:center;padding:3rem 0}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow-x:auto}.page{width:100%}.actions-right{justify-content:flex-end}.modal-backdrop{z-index:100;background:rgba(0,0,0,.6);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:90%;max-width:440px;padding:1.5rem}.modal h3{margin-bottom:.75rem}.modal p{color:var(--text-muted);margin-bottom:1rem;font-size:.875rem}.chip-blue{color:var(--primary);background:rgba(99,102,241,.1)}.chip-sm{padding:.0625rem .375rem;font-size:.65rem}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-solid:hover{background:var(--danger-hover)}.model-cell{flex-wrap:wrap;align-items:center;gap:.375rem;display:flex}.form-group-stack{flex-direction:column;flex:1;gap:1rem;display:flex}.mapping-list{flex-direction:column;gap:.75rem;display:flex}.mapping-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;display:grid}.mapping-label{flex-direction:column;gap:.25rem;display:flex}.mapping-arrow{color:var(--text-muted)}.mapping-select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);padding:.5rem .75rem;font-family:inherit;font-size:.875rem}.mapping-select:focus{border-color:var(--primary);outline:none}.filters{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.filter-select,.filter-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);min-width:160px;padding:.375rem .625rem;font-family:inherit;font-size:.8125rem}.filter-select:focus,.filter-input:focus{border-color:var(--primary);outline:none}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1rem;padding:.75rem 0;display:flex}.chip-danger{color:var(--danger);background:rgba(239,68,68,.1)}.oauth-status{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.api-key-section{justify-content:space-between;align-items:center;gap:1rem;display:flex}.api-key-actions{flex-shrink:0;gap:.5rem;display:flex}.api-key-cell{align-items:center;gap:.5rem;display:flex}.login-page{background:var(--bg);justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;padding:2rem}.login-brand{color:var(--primary);letter-spacing:.05em;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.login-card h2{margin-bottom:1.5rem;font-size:1.25rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-btn{justify-content:center;width:100%;margin-top:.5rem}.login-setup-link{color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:none;width:100%;margin-top:1rem;font-size:.8125rem;display:block}.login-setup-link:hover{color:var(--primary)}.sidebar-spacer{flex:1}.sidebar-user{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1.25rem;display:flex}.sidebar-user-name{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}