:root,[data-theme=light]{--color-bg: #ffffff;--color-text: #0a0a0a;--color-text-secondary: #6b7280;--color-surface: #f8f8f8;--color-border: #e5e5e5;--color-input-bg: #ffffff;--color-hover: #f0f0f0}[data-theme=dark]{--color-bg: #0a0a0a;--color-text: #fafafa;--color-text-secondary: #9ca3af;--color-surface: #141414;--color-border: #262626;--color-input-bg: #1a1a1a;--color-hover: #1f1f1f}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg)}.login-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:2rem;width:100%;max-width:360px;display:flex;flex-direction:column;gap:1rem}.login-form h1{font-size:1.25rem;font-weight:600;text-align:center}.login-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem;color:var(--color-text-secondary)}.login-form input{padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-input-bg);color:var(--color-text);font-size:.875rem}.login-form button{padding:.5rem;border:none;border-radius:4px;background:var(--color-text);color:var(--color-bg);font-size:.875rem;font-weight:500;cursor:pointer}.login-form button:disabled{opacity:.5}.login-error{color:#ef4444;font-size:.875rem;text-align:center}.layout{display:flex;flex-direction:column;min-height:100vh}.header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.header-left{display:flex;align-items:center;gap:2rem}.header-title{font-size:1rem;font-weight:600}.nav{display:flex;gap:.5rem}.nav-link{text-decoration:none;color:var(--color-text-secondary);font-size:.875rem;padding:.25rem .75rem;border-radius:4px;transition:background .15s}.nav-link:hover{background:var(--color-hover)}.nav-link.active{color:var(--color-text);background:var(--color-hover);font-weight:500}.header-right{display:flex;align-items:center;gap:.5rem}.theme-toggle,.logout-button{padding:.25rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:transparent;color:var(--color-text-secondary);font-size:.75rem;cursor:pointer}.theme-toggle:hover,.logout-button:hover{background:var(--color-hover)}.main{flex:1;padding:1.5rem}.dashboard-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.connection-status{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--color-text-secondary)}.dashboard-filter{display:flex;gap:.75rem;align-items:flex-end;margin-bottom:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:.75rem 1rem;flex-wrap:wrap}.dashboard-filter label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--color-text-secondary);min-width:140px}.dashboard-filter input,.dashboard-filter select{padding:.375rem .5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-input-bg);color:var(--color-text);font-size:.8125rem}.filter-clear{padding:.375rem .75rem;border:1px solid var(--color-border);border-radius:4px;background:transparent;color:var(--color-text-secondary);font-size:.75rem;cursor:pointer;align-self:flex-end}.filter-clear:hover{background:var(--color-hover)}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.connected{background:#22c55e}.status-dot.connecting{background:#f59e0b}.status-dot.disconnected{background:#ef4444}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1rem 1.25rem}.card-label{font-size:.75rem;color:var(--color-text-secondary);margin-bottom:.25rem}.card-value{font-size:1.5rem;font-weight:600}.charts-row{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-bottom:1.5rem}.chart-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1rem}.chart-container h3{font-size:.875rem;font-weight:500;margin-bottom:.75rem}.access-log{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1rem}.access-log h3{font-size:.875rem;font-weight:500;margin-bottom:.75rem}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.8125rem}th{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--color-border);font-weight:500;color:var(--color-text-secondary);white-space:nowrap}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--color-text)}td{padding:.375rem .75rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.path-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis}.trace-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;font-family:monospace;font-size:.75rem}tr.status-5xx td{color:#ef4444}tr.status-4xx td{color:#f59e0b}.query-page h2{font-size:1.125rem;font-weight:600;margin-bottom:1rem}.query-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1rem;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.75rem}.form-row{display:flex;gap:.75rem;flex-wrap:wrap}.form-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--color-text-secondary);flex:1;min-width:150px}.form-row select,.form-row input{padding:.375rem .5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-input-bg);color:var(--color-text);font-size:.8125rem}.query-form button{align-self:flex-start;padding:.375rem 1.25rem;border:none;border-radius:4px;background:var(--color-text);color:var(--color-bg);font-size:.8125rem;font-weight:500;cursor:pointer}.query-form button:disabled{opacity:.5}.query-error{color:#ef4444;font-size:.875rem;margin-bottom:1rem}.query-results{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1rem;margin-top:1rem}.query-results h3{font-size:.875rem;font-weight:500;margin-bottom:.75rem}
