*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--bg-card: #1a1d27;--bg-input: #12151f;--border: #2a2d3a;--text: #e2e4ed;--text-muted: #8b8fa8;--accent: #6c8dff;--accent-hover: #8aa3ff;--danger: #e05c6e;--danger-hover: #e87080;--ok-border: rgba(74, 222, 128, .3);--err-color: #f87171;--err-border: rgba(248, 113, 113, .4);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}body{min-height:100vh}.app{display:flex;flex-direction:column;min-height:100vh}.header{display:flex;align-items:center;gap:2rem;padding:0 1.5rem;height:52px;background:var(--bg-card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.header-title{font-weight:700;font-size:15px;letter-spacing:.02em;white-space:nowrap}.tab-bar{display:flex;gap:.25rem}.tab-btn{background:none;border:none;padding:.4rem .85rem;border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:500;transition:background .1s,color .1s}.tab-btn:hover{background:#ffffff0f;color:var(--text)}.tab-btn.active{background:#6c8dff26;color:var(--accent)}.user-bar{margin-left:auto;display:flex;align-items:center;gap:.75rem}.user-identity{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.logout-btn{background:none;border:none;color:var(--text-muted);font-size:12px;cursor:pointer;padding:.2rem .4rem;border-radius:4px;transition:color .1s}.logout-btn:hover{color:var(--danger)}.content{flex:1;padding:1.5rem;max-width:760px;width:100%;margin:0 auto}.page{display:flex;flex-direction:column;gap:1rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.card h2{font-size:14px;font-weight:600}.form-row{display:flex;flex-direction:column;gap:.3rem}.form-row label{font-size:12px;color:var(--text-muted);font-weight:500}input[type=email],input[type=password],input[type=text],input[type=text]:disabled{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;color:var(--text);font-size:13px;outline:none;transition:border-color .15s;width:100%}input:disabled{opacity:.5;cursor:not-allowed}input:focus{border-color:var(--accent)}input::placeholder{color:var(--text-muted)}.btn-row{display:flex;gap:.5rem}button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.45rem 1rem;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.45;cursor:not-allowed}button.danger{background:var(--danger)}button.danger:hover:not(:disabled){background:var(--danger-hover)}.response{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:.75rem;font-size:12px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;white-space:pre-wrap;word-break:break-all;max-height:300px;overflow-y:auto}.response.ok{border-color:var(--ok-border)}.response.err{border-color:var(--err-border);color:var(--err-color)}.badge{display:inline-block;padding:.15em .55em;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:#ffffff14}.badge-ready{background:#4ade8026;color:#4ade80}.badge-error{background:#f8717126;color:#f87171}.badge-provisioning{background:#facc1526;color:#facc15}.badge-pending{background:#94a3b826;color:#94a3b8}.badge-registered{background:#4ade8026;color:#4ade80}.badge-deleted,.badge-login-logged-out{background:#94a3b826;color:#94a3b8}.badge-login-logging-in{background:#facc1526;color:#facc15}.badge-login-connected{background:#4ade8026;color:#4ade80}.auth-header-section{margin-top:.75rem}.auth-header-box{display:flex;align-items:flex-start;gap:.5rem;background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:.6rem .75rem}.auth-header-value{flex:1;font-size:.72rem;word-break:break-all;color:#79c0ff;white-space:pre-wrap}.copy-btn{flex-shrink:0;padding:.2rem .6rem;font-size:.75rem;background:#21262d;color:#c9d1d9;border:1px solid #30363d;border-radius:4px;cursor:pointer}.copy-btn:hover{background:#30363d}.jwt-display{display:flex;flex-direction:column;gap:.3rem;font-family:SF Mono,Fira Code,monospace;font-size:12px;color:var(--text-muted)}.jwt-display strong{margin-right:.5rem}.jwt-empty,.jwt-error{font-size:12px;color:var(--text-muted)}.health-table{width:100%;border-collapse:collapse;font-size:13px}.health-table th{text-align:left;padding:.5rem .75rem;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border)}.health-table td{padding:.6rem .75rem;border-bottom:1px solid rgba(42,45,58,.5)}.metrics-table .expand-cell{width:24px;color:var(--text-muted);font-size:11px;padding-right:0}.metrics-row{cursor:pointer}.metrics-row:hover td{background:#ffffff08}.metrics-detail-row td{background:#0003;padding:0;border-bottom:1px solid var(--border)}.metrics-detail{display:flex;flex-direction:column;gap:1rem;padding:1rem 1.25rem}.metrics-detail-section{display:flex;flex-direction:column;gap:.4rem}.metrics-detail-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.metrics-restart-row{flex-direction:row;align-items:center;gap:.75rem;padding-top:.25rem;border-top:1px solid var(--border);margin-top:.25rem}.err-hint{color:var(--danger, #e74c3c)}.restart-time{color:var(--text-muted);font-size:12px;white-space:nowrap}.suggestions-list{padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem;font-size:13px}button.secondary{background:#ffffff12;color:var(--text-muted);border:1px solid var(--border)}button.secondary:hover:not(:disabled){background:#ffffff1f;color:var(--text)}select{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;color:var(--text);font-size:13px;outline:none;cursor:pointer}select:focus{border-color:var(--accent)}.login-panel{display:flex;flex-direction:column;gap:.75rem;border-top:1px solid var(--border);padding-top:.75rem;margin-top:.25rem}.login-status-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.login-id-chip{font-size:11px;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;background:#ffffff0d;padding:.1em .5em;border-radius:4px;border:1px solid var(--border)}.login-section{display:flex;flex-direction:column;gap:.6rem}.login-step{background:#ffffff05;border:1px solid var(--border);border-radius:8px;padding:.9rem}.step-meta{font-size:12px;color:var(--text-muted);margin-bottom:.4rem}.step-instructions{font-size:13px;color:var(--text);padding:.4rem .6rem;background:#6c8dff12;border-left:2px solid var(--accent);border-radius:0 4px 4px 0}.daw-block{display:flex;flex-direction:column;gap:.6rem}.daw-data{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:.75rem;font-size:12px;font-family:SF Mono,Fira Code,monospace;white-space:pre-wrap;word-break:break-all;color:#facc15}.user-input-block{display:flex;flex-direction:column;gap:.6rem}.ok-text{font-size:13px;color:#4ade80;font-weight:500}.response-log{display:flex;flex-direction:column;gap:.4rem}.log-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.log-entry{display:flex;flex-direction:column;gap:.2rem}.log-label{font-size:11px;font-family:SF Mono,Fira Code,monospace;padding:.15rem .5rem;border-radius:4px 4px 0 0;border:1px solid var(--border);border-bottom:none}.log-label.log-ok{background:#4ade8014;color:#4ade80;border-color:#4ade8033}.log-label.log-err{background:#f8717114;color:var(--err-color);border-color:#f8717133}.log-entry .response{border-radius:0 0 6px 6px;margin-top:0}.hint{font-size:12px;color:var(--text-muted)}.logs-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.logs-header-actions{display:flex;align-items:center;gap:.75rem}.logs-toggle{display:flex;align-items:center;gap:.4rem;font-size:12px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.logs-filter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:.75rem}.filter-span2{grid-column:span 2}.filter-group{display:flex;flex-direction:column;gap:.3rem}.filter-group label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.filter-group select,.filter-group input[type=text],.filter-group input[type=datetime-local]{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;padding:.4rem .6rem;width:100%}.filter-group input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.7)}.logs-btn-primary{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.45rem 1.25rem;font-size:13px;cursor:pointer;font-weight:500}.logs-btn-primary:hover:not(:disabled){background:var(--accent-hover)}.logs-btn-primary:disabled{opacity:.5;cursor:not-allowed}.logs-summary{display:flex;align-items:center;gap:1.25rem;padding:.5rem .25rem;font-size:13px;color:var(--text-muted);flex-wrap:wrap}.logs-summary strong{color:var(--text)}.logs-stat-warn{color:#fb923c}.logs-page-info{margin-left:auto;font-size:12px}.logs-table-card{padding:0;overflow:hidden}.logs-table-wrap{overflow-x:auto}.logs-table{width:100%;border-collapse:collapse;font-size:13px}.logs-table thead tr{background:#ffffff08;border-bottom:1px solid var(--border)}.logs-table th{padding:.6rem .85rem;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);white-space:nowrap}.logs-row{border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer;transition:background .1s}.logs-row:hover{background:#ffffff08}.logs-row-open{background:#6c8dff0f}.logs-table td{padding:.55rem .85rem;vertical-align:middle;white-space:nowrap}.logs-ts{color:var(--text-muted);font-size:12px;font-family:SF Mono,monospace}.logs-method{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.04em}.logs-method-get{background:#6c8dff26;color:#6c8dff}.logs-method-post{background:#4ade8026;color:#4ade80}.logs-method-delete{background:#e05c6e26;color:#e05c6e}.logs-method-patch{background:#fb923c26;color:#fb923c}.logs-method-put{background:#eab30826;color:#eab308}.logs-method-head,.logs-method-options{background:#ffffff0f;color:var(--text-muted)}.logs-status{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:12px;font-weight:600;font-family:SF Mono,monospace}.status-2xx{background:#4ade8026;color:#4ade80}.status-3xx{background:#6c8dff26;color:#6c8dff}.status-4xx{background:#fb923c26;color:#fb923c}.status-5xx{background:#e05c6e26;color:#e05c6e}.logs-path-cell{max-width:320px;overflow:hidden;text-overflow:ellipsis}.logs-path{color:var(--text)}.logs-qs{color:var(--text-muted);font-size:12px}.logs-slow{color:#fb923c;font-weight:600}.logs-uid-btn{background:#ffffff0d;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);font-family:SF Mono,monospace;font-size:11px;padding:.15rem .45rem;cursor:pointer}.logs-uid-btn:hover{background:#ffffff1a;color:var(--text)}.logs-muted{color:var(--text-muted);font-size:12px}.logs-expand-icon{color:var(--text-muted);font-size:10px;text-align:right}.logs-detail-row td{padding:0;background:#00000040;border-bottom:1px solid var(--border)}.logs-detail{padding:.85rem 1rem}.logs-detail-meta{display:flex;flex-direction:column;gap:.25rem;font-size:12px;color:var(--text-muted);margin-bottom:.75rem}.logs-detail-meta strong{color:var(--text)}.logs-bodies{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.logs-body-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.3rem}.logs-body-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.logs-body-expand{font-size:11px;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;font-weight:500}.logs-body-expand:hover{color:var(--accent-hover);text-decoration:underline}.logs-body-preview{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;overflow:hidden;transition:border-color .15s}.logs-body-preview:hover{border-color:var(--accent)}.json-pre{font-family:SF Mono,Fira Code,monospace;font-size:12px;line-height:1.6;padding:.65rem .85rem;margin:0;white-space:pre-wrap;word-break:break-all;overflow:auto;max-height:var(--json-max-height, 200px)}.json-key{color:#79c0ff}.json-string{color:#a5d6ff}.json-number{color:#f2cc60}.json-boolean{color:#ff9e64}.json-null{color:#ff9e64;font-style:italic}.json-punct{color:#8b8fa8}.json-ws,.json-unknown{color:var(--text)}.json-truncated{color:var(--text-muted);font-style:italic}.json-empty{color:var(--text-muted);font-size:12px;padding:.65rem .85rem;display:block;font-style:italic}.json-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:2rem}.json-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;width:min(900px,90vw);max-height:85vh;box-shadow:0 24px 64px #0009;overflow:hidden}.json-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--border);flex-shrink:0}.json-modal-titles{display:flex;flex-direction:column;gap:.2rem}.json-modal-title{font-size:14px;font-weight:600;color:var(--text)}.json-modal-subtitle{font-size:12px;color:var(--text-muted);font-family:SF Mono,monospace}.json-modal-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.json-modal-copy{font-size:12px;padding:.25rem .75rem;background:#6c8dff1f;color:var(--accent);border:1px solid rgba(108,141,255,.3);border-radius:5px;cursor:pointer;font-weight:500}.json-modal-copy:hover{background:#6c8dff33}.json-modal-close{font-size:16px;line-height:1;padding:.25rem .5rem;background:none;color:var(--text-muted);border:1px solid var(--border);border-radius:5px;cursor:pointer}.json-modal-close:hover{color:var(--text);background:#ffffff0d}.json-modal-body{overflow:auto;flex:1;background:#0d1117}.json-modal-body .json-pre{--json-max-height: none;max-height:none;font-size:13px;padding:1rem 1.25rem}.logs-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.85rem 1rem;border-top:1px solid var(--border);font-size:13px;color:var(--text-muted)}.error{color:var(--err-color);font-size:13px}code{background:#ffffff14;padding:.1em .35em;border-radius:4px;font-family:SF Mono,monospace;font-size:12px}.ai-status{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.03em;white-space:nowrap}.ai-status-ok{background:#4ade8026;color:#4ade80}.ai-status-err{background:#e05c6e26;color:#e05c6e}.ai-status-llm{background:#6c8dff26;color:#6c8dff}.ai-status-pending{background:#ffffff0f;color:var(--text-muted)}.ai-feature-chip{font-size:12px;font-weight:600;color:var(--text)}.ai-detail{padding:.85rem 1rem}.ai-detail-meta{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;font-size:12px;color:var(--text-muted);margin-bottom:.75rem}.ai-detail-meta strong{color:var(--text)}.ai-detail-err{color:var(--err-color);flex-basis:100%}.ai-token-bar{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.ai-token-chip{font-size:11px;font-weight:600;padding:.2rem .6rem;border-radius:4px}.ai-tok-prompt{background:#6c8dff1f;color:#6c8dff}.ai-tok-completion{background:#4ade801f;color:#4ade80}.ai-tok-total{background:#ffffff0f;color:var(--text-muted)}.ai-detail-cols{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;align-items:start}.ai-col-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.3rem}.ai-col-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.lc-timeline{display:flex;flex-direction:column;gap:0;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;overflow:hidden}.lc-event{display:flex;align-items:flex-start;gap:.6rem;padding:.5rem .75rem;border-bottom:1px solid rgba(255,255,255,.04);font-size:12px}.lc-event:last-child{border-bottom:none}.lc-icon{font-size:14px;line-height:1.4;flex-shrink:0}.lc-body{flex:1;min-width:0}.lc-event-row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.lc-name{font-weight:600;color:var(--text);font-family:SF Mono,monospace;font-size:11.5px}.lc-time{font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.lc-delta{opacity:.7}.lc-detail-str{color:var(--text-muted);font-size:11.5px;margin-top:.15rem;white-space:pre-wrap;word-break:break-all}.lc-inspect-btn{font-size:11px;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;margin-top:.2rem}.lc-inspect-btn:hover{text-decoration:underline;color:var(--accent-hover)}.lc-ok{border-left:3px solid #4ade80}.lc-err{border-left:3px solid #e05c6e}.lc-llm{border-left:3px solid #6c8dff}.lc-queued{border-left:3px solid var(--border)}.lc-processing{border-left:3px solid #fb923c}.lc-info{border-left:3px solid rgba(255,255,255,.1)}.users-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:.75rem;margin-bottom:.25rem}.users-total-card{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.25rem}.users-total-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.users-total-value{font-size:22px;font-weight:700;color:var(--text);font-family:SF Mono,monospace}.users-table td{vertical-align:middle}.users-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.users-th-sortable:hover{color:var(--text)}.sort-arrow{font-size:10px}.users-role-admin{display:inline-block;padding:.1rem .45rem;border-radius:4px;font-size:11px;font-weight:700;background:#6c8dff26;color:#6c8dff}.users-role-user{display:inline-block;padding:.1rem .45rem;border-radius:4px;font-size:11px;color:var(--text-muted);background:#ffffff0a}.users-num{font-family:SF Mono,monospace;font-size:12.5px;text-align:right}.users-depleted{color:#e05c6e;font-weight:700}.users-pct-row{display:flex;align-items:center;gap:.5rem}.usage-bar-wrap{flex:1;height:6px;background:#ffffff12;border-radius:3px;overflow:hidden;min-width:60px}.usage-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.usage-bar-ok{background:#4ade80}.usage-bar-warn{background:#fb923c}.usage-bar-danger{background:#e05c6e}.users-pct-label{font-size:11px;color:var(--text-muted);white-space:nowrap;min-width:32px;text-align:right}
