*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#21262d;--bg-hover:#30363d;--border:#30363d;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#6e7681;--accent:#58a6ff;--accent-hover:#79c0ff;--success:#3fb950;--danger:#f85149;--warning:#d29922;--input-bg:#0d1117}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary)}.app,body{min-height:100vh}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.navbar{justify-content:space-between;padding:0 16px;height:48px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.nav-left,.navbar{display:flex;align-items:center}.nav-left{gap:16px}.nav-right{display:flex;align-items:center;gap:12px}.nav-brand{font-weight:600;font-size:16px;cursor:pointer;color:var(--text-primary)}.nav-link{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:14px;padding:4px 8px;border-radius:6px}.nav-link:hover{color:var(--text-primary);background:var(--bg-hover)}.nav-link.active{color:var(--accent)}.nav-icon{color:var(--text-secondary);display:flex;align-items:center}.nav-icon:hover{color:var(--text-primary)}.nav-username{font-size:14px}.nav-logout,.nav-username{color:var(--text-secondary)}.nav-logout{background:none;border:1px solid var(--border);font-size:12px;padding:4px 12px;border-radius:6px;cursor:pointer}.nav-logout:hover{color:var(--danger);border-color:var(--danger)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:32px;width:100%;max-width:360px}.login-card h1{font-size:24px;text-align:center;margin-bottom:4px}.login-sub{text-align:center;color:var(--text-secondary);font-size:14px;margin-bottom:24px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}input,select,textarea{width:100%;padding:8px 12px;background:var(--input-bg);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:14px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(88,166,255,.15)}textarea{resize:vertical;font-family:inherit}.btn-primary{width:100%;padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:8px 16px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;font-size:14px;cursor:pointer}.btn-secondary:hover{background:var(--bg-hover)}.btn-sm{padding:4px 10px;font-size:12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer;margin-right:4px}.btn-sm:hover{background:var(--bg-hover)}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:rgba(248,81,73,.1)}.btn-copy{padding:2px 8px;font-size:11px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.btn-copy:hover{color:var(--text-primary);background:var(--bg-hover)}.error-msg{color:var(--danger)}.error-msg,.result-msg{font-size:13px;margin-bottom:12px}.result-msg{padding:8px 12px;border-radius:6px}.result-msg.success{background:rgba(63,185,80,.1);color:var(--success)}.result-msg.error{background:rgba(248,81,73,.1);color:var(--danger)}.dashboard{padding:16px;max-width:1100px;margin:0 auto}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-bottom:16px}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:20px}.card h2{font-size:16px;font-weight:600;margin-bottom:16px}.keys-card{grid-column:1/-1}.key-list{display:flex;flex-direction:column;gap:8px}.key-item{justify-content:space-between;padding:10px 12px;background:var(--bg-tertiary);border-radius:6px}.key-info,.key-item{display:flex;align-items:center}.key-info{gap:10px;flex-wrap:wrap}.key-label{font-weight:500;font-size:13px}.key-value{font-family:Consolas,Courier New,monospace;font-size:12px;color:var(--accent);background:var(--bg-primary);padding:2px 8px;border-radius:4px}.key-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}.key-badge.active{background:rgba(63,185,80,.15);color:var(--success)}.key-badge.inactive{background:rgba(139,148,158,.15);color:var(--text-secondary)}.key-limit{font-size:12px;color:var(--text-muted)}.current-key{margin-top:16px;display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-tertiary);border-radius:6px}.current-key .key-label{font-size:12px;color:var(--text-secondary)}.current-key .key-value{font-size:12px}.stats-range{display:flex;gap:8px;margin-bottom:16px}.range-btn{padding:4px 12px;font-size:12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer}.range-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.bar-chart{display:flex;align-items:flex-end;gap:4px;height:120px;padding-top:8px}.bar-item{flex:1 1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.bar{width:100%;max-width:28px;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px;transition:height .3s}.bar-label{font-size:10px;margin-top:4px;text-align:center}.bar-label,.no-data{color:var(--text-muted)}.no-data{font-size:14px}.admin-page{padding:16px;max-width:1100px;margin:0 auto}.admin-tabs{display:flex;gap:2px;margin-bottom:16px;border-bottom:1px solid var(--border)}.tab-btn{padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:14px;cursor:pointer}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.admin-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;align-items:flex-end}.admin-form input,.admin-form select,.admin-form textarea{flex:1 1;min-width:140px}.admin-form .btn-primary,.admin-form .btn-secondary{flex:0 0 auto;width:auto}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;background:var(--bg-tertiary);color:var(--text-secondary);font-weight:500;white-space:nowrap}.admin-table td,.admin-table th{padding:8px 12px;border-bottom:1px solid var(--border)}.admin-table td{color:var(--text-primary)}.admin-table tr:hover td{background:rgba(48,54,61,.3)}.admin-table code{font-family:Consolas,Courier New,monospace;font-size:11px;color:var(--accent)}.tpl-preview{font-size:11px;color:var(--text-secondary)}.api-docs{margin-top:16px}.api-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer}.api-header h2{margin-bottom:0}.collapse-icon{font-size:18px;color:var(--text-secondary)}.api-content{margin-top:16px}.api-info{margin-bottom:20px}.api-info p{margin-bottom:8px;font-size:14px}.api-info code{font-family:Consolas,Courier New,monospace;font-size:13px;color:var(--accent);background:var(--bg-tertiary);padding:2px 6px;border-radius:4px}.api-endpoint{margin-bottom:24px}.api-endpoint h3{display:flex;align-items:center;gap:10px;font-size:15px;margin-bottom:8px}.api-endpoint h3 code{font-family:Consolas,Courier New,monospace;font-size:14px;color:var(--accent)}.api-endpoint h4{font-size:13px;color:var(--text-secondary);margin:12px 0 6px}.http-method{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase}.http-method.POST{background:rgba(57,172,80,.15);color:#3fb950}.http-method.GET{background:rgba(88,166,255,.15);color:#58a6ff}.http-method.PUT{background:rgba(210,153,34,.15);color:#d29922}.http-method.DELETE{background:rgba(248,81,73,.15);color:#f85149}.http-method.PATCH{background:rgba(163,113,247,.15);color:#a371f7}.vscode-block{border:1px solid var(--border);border-radius:6px;overflow:hidden;margin-bottom:8px}.vscode-header{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:#252526;border-bottom:1px solid var(--border)}.vscode-filename{font-size:12px;color:var(--text-secondary)}.vscode-copy{padding:2px 8px;font-size:11px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);cursor:pointer}.vscode-copy:hover{color:var(--text-primary)}@media (max-width:768px){.dashboard-grid{grid-template-columns:1fr}.admin-form{flex-direction:column}.admin-form input,.admin-form select,.admin-form textarea{width:100%}.key-item{flex-direction:column;gap:8px;align-items:flex-start}}