:root{--color-bg-base:#090a0d;--color-surface-card:#12141a;--color-surface-card-hover:#151821;--color-surface-alt:#1a1d26;--color-surface-input:#0e1015;--color-border:#ffffff14;--color-border-hover:#ffffff29;--color-border-glow:#5865f259;--color-text-main:#f2f3f5;--color-text-muted:#949ba4;--color-text-dim:#6d737f;--color-brand-blurple:#5865f2;--color-brand-blurple-hover:#4752c4;--color-success:#57f287;--color-success-bg:#57f2871f;--color-warning:#f59e0b;--color-warning-bg:#f59e0b1f;--color-danger:#ed4245;--color-danger-bg:#ed42451f;--color-info:#3ba55c;--font-heading:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", Consolas, monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--shadow-card:0 4px 20px #00000073;--shadow-glow:0 0 24px var(--color-border-glow)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--color-bg-base);width:100%;min-height:100vh;color:var(--color-text-main);font-family:var(--font-heading);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-base)}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#1f232e}::-webkit-scrollbar-thumb:hover{background:#2b303f}h1,h2,h3,h4,h5,h6{color:var(--color-text-main);letter-spacing:-.02em;font-weight:600}a{color:var(--color-brand-blurple);text-decoration:none;transition:color .15s}a:hover{color:var(--color-brand-blurple-hover)}code,pre,.font-mono{font-family:var(--font-mono)}.app-layout{background-color:var(--color-bg-base);min-height:100vh;display:flex}.main-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow-x:hidden}.page-container{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:24px 32px 48px}.btn{font-family:var(--font-heading);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .15s ease-in-out;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-brand-blurple);color:#fff;border-color:#ffffff1a}.btn-primary:hover:not(:disabled){background-color:var(--color-brand-blurple-hover);box-shadow:0 0 16px #5865f266}.btn-secondary{background-color:var(--color-surface-card);color:var(--color-text-main);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-card-hover);border-color:var(--color-border-hover)}.btn-danger{background-color:var(--color-danger-bg);color:var(--color-danger);border-color:#ed424540}.btn-danger:hover:not(:disabled){background-color:var(--color-danger);color:#fff}.btn-ghost{color:var(--color-text-muted);background:0 0}.btn-ghost:hover:not(:disabled){background-color:var(--color-surface-card-hover);color:var(--color-text-main)}.btn-sm{padding:5px 10px;font-size:12px}.btn-icon{border-radius:var(--radius-sm);padding:7px}.form-control{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:12px;font-weight:600}.input-text,.input-select,.input-textarea{background-color:var(--color-surface-input);border:1px solid var(--color-border);width:100%;color:var(--color-text-main);border-radius:var(--radius-sm);font-family:var(--font-heading);outline:none;padding:9px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.input-text:focus,.input-select:focus,.input-textarea:focus{border-color:var(--color-brand-blurple);box-shadow:0 0 0 2px #5865f233}.input-textarea{resize:vertical;min-height:80px}.card{background-color:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:20px}.card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-active{background:var(--color-success-bg);color:var(--color-success);border:1px solid #57f28740}.badge-trial{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid #f59e0b40}.badge-expired{color:var(--color-text-muted);background:#949ba41f;border:1px solid #949ba433}.badge-revoked{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #ed424540}.table-wrapper{border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface-card);overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);background-color:#0d0f14;padding:12px 16px;font-size:11px;font-weight:700}.data-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-main);vertical-align:middle;padding:13px 16px;font-size:13px}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background-color:var(--color-surface-card-hover)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#000000bf;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:540px;box-shadow:0 20px 40px #000000a6, var(--shadow-glow);animation:.15s ease-out scaleUp;overflow:hidden}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-body{max-height:75vh;padding:24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--color-border);background-color:#0f1116;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}
