:root{--bg: #282c34;--bg-elevated: #2c313a;--bg-sunken: #21252b;--bg-hover: #2f343d;--bg-active: #3a3f4b;--fg: #abb2bf;--fg-strong: #d7dae0;--fg-muted: #5c6370;--border: #3e4451;--border-strong: #4b5263;--accent: #61afef;--accent-hover: #6cb8f0;--green: #98c379;--red: #e06c75;--yellow: #e5c07b;--orange: #d19a66;--purple: #c678dd;--cyan: #56b6c2;--danger: var(--red);--success: var(--green);--warning: var(--yellow);--radius: 8px;--radius-sm: 6px;--shadow: 0 8px 24px rgba(0, 0, 0, .35);color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,SF Pro Text,Roboto,Helvetica,Arial,sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}h1,h2,h3{color:var(--fg-strong);margin:0}code,.mono{font-family:JetBrains Mono,SF Mono,ui-monospace,Menlo,Consolas,monospace}button{font:inherit;cursor:pointer;border:1px solid var(--border-strong);background:var(--bg-active);color:var(--fg-strong);padding:8px 14px;border-radius:var(--radius-sm);transition:background .12s ease,border-color .12s ease}button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#0f1115;font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}input,select,textarea{font:inherit;width:100%;background:var(--bg-sunken);color:var(--fg-strong);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}label{display:block;color:var(--fg-muted);font-size:12px;margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}::placeholder{color:var(--fg-muted)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px}::-webkit-scrollbar-track{background:transparent}.layout{display:grid;grid-template-columns:240px 1fr;height:100%}.sidebar{display:flex;flex-direction:column;background:var(--bg-sunken);border-right:1px solid var(--border);padding:18px 14px}.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 18px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--accent);color:#0f1115;font-weight:700;font-size:13px}.brand-name{color:var(--fg-strong);font-weight:600}.env-badge{margin-left:auto;padding:2px 6px;border-radius:var(--radius-sm);font-size:10px;font-weight:700;letter-spacing:.04em;color:#0f1115}.env-badge.env-local{background:var(--red)}.env-badge.env-test{background:var(--orange)}.env-badge.env-prod{background:var(--green)}.nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav-link{display:block;padding:8px 10px;border-radius:var(--radius-sm);color:var(--fg);text-decoration:none}.nav-link:hover{background:var(--bg-hover);text-decoration:none}.nav-link.active{background:var(--bg-active);color:var(--fg-strong)}.sidebar-footer{border-top:1px solid var(--border);padding-top:14px;display:flex;flex-direction:column;gap:10px}.user{display:flex;flex-direction:column;gap:2px}.user-label{font-size:11px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em}.user-name{color:var(--fg-strong)}.content{overflow:auto;padding:28px 32px}.login-screen{display:flex;align-items:center;justify-content:center;height:100%;padding:24px}.login-card{width:100%;max-width:360px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px;display:flex;flex-direction:column;gap:18px}.login-header{display:flex;align-items:center;gap:12px}.login-header .brand-mark{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--accent);color:#0f1115;font-weight:700}.login-sub{margin:2px 0 0;color:var(--fg-muted);font-size:13px}.login-error{background:#e06c751f;border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius-sm);padding:8px 10px;font-size:13px}.login-submit{margin-top:4px}.page{max-width:860px}.page.wide{max-width:1100px}.page-header{margin-bottom:22px}.page-header.row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-sub{margin:6px 0 0;color:var(--fg-muted)}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;display:flex;flex-direction:column;gap:14px}.card-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.card-label{color:var(--fg-muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.card-actions{display:flex;gap:10px}.card-error{color:var(--danger);font-size:13px;word-break:break-word}.card.placeholder{color:var(--fg-muted)}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;background:var(--bg-active);color:var(--fg)}.badge.ok{background:#98c37929;color:var(--success)}.badge.err{background:#e06c7529;color:var(--danger)}.field{display:flex;flex-direction:column}.field.grow{flex:1}.filters{display:flex;align-items:flex-end;gap:12px;margin-bottom:18px;flex-wrap:wrap}.filters .field{min-width:140px}.filters button{white-space:nowrap}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}.data-table th{color:var(--fg-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;background:var(--bg-sunken)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-hover)}.data-table td.empty{text-align:center;color:var(--fg-muted);padding:24px}.data-table td.truncate{max-width:220px;overflow:hidden;text-overflow:ellipsis}.link-btn{border:none;background:transparent;color:var(--accent);padding:2px 4px}.link-btn:hover:not(:disabled){background:transparent;text-decoration:underline;border-color:transparent}.key-box{resize:vertical;word-break:break-all}.card-title{font-size:14px;margin-bottom:4px}.balance-value{font-size:20px;color:var(--fg-strong)}.quota-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quota-cell{display:flex;flex-direction:column;gap:6px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px}.quota-num{font-size:22px;color:var(--fg-strong)}.quota-num.ok{color:var(--success)}.quota-num.danger{color:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;z-index:100;overflow-y:auto}.modal{width:100%;max-width:520px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:15px}.modal-close{border:none;background:transparent;color:var(--fg-muted);padding:4px 8px;font-size:14px}.modal-close:hover:not(:disabled){background:var(--bg-hover);color:var(--fg-strong)}.modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border)}.secret-reveal{display:inline-flex;align-items:center;gap:6px}.secret-reveal__text{letter-spacing:1px}.secret-reveal__btn{flex-shrink:0;font-size:14px;line-height:1;padding:2px 4px;opacity:.5;transition:opacity .1s}.secret-reveal__btn:hover{opacity:1}.device-uid{display:inline-flex;align-items:center;gap:6px}.device-uid__text{word-break:break-all;white-space:normal}.device-uid__copy{flex-shrink:0;font-size:16px;line-height:1;padding:2px 4px;color:#fff;opacity:.5;transition:opacity .1s}.device-uid__copy:hover{opacity:1}
