diff --git a/crates/proxy/admin-ui/index.html b/crates/proxy/admin-ui/index.html index 58ca2db..3b0c90c 100644 --- a/crates/proxy/admin-ui/index.html +++ b/crates/proxy/admin-ui/index.html @@ -27,10 +27,16 @@ a{color:#4a9eff;text-decoration:none} .card-body{margin-top:8px;color:#8b949e;font-size:12px} .section-label{color:#8b949e;font-size:11px;text-transform:uppercase;margin-bottom:8px;letter-spacing:0.5px} .feed{background:#161b22;border:1px solid #30363d;border-radius:6px;overflow:hidden;max-height:400px;overflow-y:auto} -.feed-header,.feed-row{display:grid;grid-template-columns:150px 60px 90px 100px 70px 70px;padding:6px 12px;font-size:12px} +.feed-header,.feed-row{display:grid;grid-template-columns:140px 50px 80px 1fr 65px 55px 55px;padding:6px 12px;font-size:12px} .feed-header{background:#1c2128;color:#8b949e;border-bottom:1px solid #30363d;position:sticky;top:0} -.feed-row{border-bottom:1px solid #21262d} +.feed-row{border-bottom:1px solid #21262d;cursor:pointer} .feed-row:last-child{border-bottom:none} +.feed-row:hover{background:#1c2128} +.feed-detail{padding:12px 16px;background:#0d1117;border-bottom:1px solid #21262d;font-size:12px;display:grid;grid-template-columns:120px 1fr;gap:4px 12px} +.feed-detail .label{color:#8b949e} +.feed-detail .val{color:#c9d1d9;font-family:monospace;word-break:break-all} +.feed-detail .error-msg{color:#f85149;grid-column:1/-1;margin-top:4px;padding:6px;background:rgba(248,81,73,0.1);border-radius:4px} +.streaming-badge{font-size:9px;padding:1px 4px;border-radius:2px;background:rgba(74,158,255,0.2);color:#4a9eff;margin-left:4px} .status-2xx{color:#3fb950}.status-4xx{color:#d29922}.status-5xx{color:#f85149} .form-group{margin-bottom:16px;padding:12px;background:#161b22;border:1px solid #30363d;border-radius:6px} .form-label{font-weight:600;margin-bottom:4px} @@ -52,14 +58,46 @@ input:focus,select:focus{outline:none;border-color:#4a9eff} .error{color:#f85149} .empty{text-align:center;padding:40px;color:#8b949e} .pagination{display:flex;gap:8px;margin-top:12px;align-items:center} +/* Login overlay */ +.login-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0d1117;display:flex;align-items:center;justify-content:center;z-index:1000} +.login-card{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:32px;width:320px} +.login-title{font-size:18px;font-weight:600;margin-bottom:24px;text-align:center;color:#c9d1d9} +.login-card input[type="password"]{width:100%;padding:8px 12px;margin-bottom:12px;font-size:14px;background:#0d1117;border:1px solid #30363d;color:#c9d1d9;border-radius:4px} +.login-card input[type="password"]:focus{outline:none;border-color:#4a9eff} +.login-card .btn{width:100%;padding:10px;font-size:14px} +.login-error{color:#f85149;font-size:12px;margin-top:8px;min-height:16px} +/* Keys tab */ +.keys-grid{width:100%;border-collapse:collapse;font-size:12px} +.keys-grid th,.keys-grid td{padding:8px 10px;text-align:left;border-bottom:1px solid #21262d} +.keys-grid th{background:#1c2128;color:#8b949e;font-size:10px;text-transform:uppercase;letter-spacing:0.5px;position:sticky;top:0} +.keys-grid tr:hover td{background:#161b22} +.badge-active{background:rgba(63,185,80,0.2);color:#3fb950;font-size:10px;padding:2px 6px;border-radius:3px} +.badge-revoked{background:rgba(248,81,73,0.2);color:#f85149;font-size:10px;padding:2px 6px;border-radius:3px} +.badge-expired{background:rgba(210,153,34,0.2);color:#d29922;font-size:10px;padding:2px 6px;border-radius:3px} +.btn-danger{background:#da3633;border-color:#f85149;color:white} +.btn-sm{padding:3px 8px;font-size:11px;border-radius:4px} +.key-result{background:#0d1117;border:1px solid #3fb950;border-radius:6px;padding:12px;margin-bottom:12px;font-family:monospace;font-size:12px;word-break:break-all} +.key-result-label{color:#3fb950;font-size:11px;margin-bottom:4px;font-weight:600}
+ @@ -72,9 +110,15 @@ input:focus,select:focus{outline:none;border-color:#4a9eff}