*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0a;--bg-raised: #111111;--bg-hover: #1a1a1a;--border: #222222;--text: #ededed;--text-secondary: #888888;--text-tertiary: #555555;--white: #ffffff;--accent: #3b82f6;--accent-hover: #2563eb;--green: #22c55e;--red: #ef4444;--yellow: #f59e0b;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition: .2s ease}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh}#root{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.navbar{padding:14px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.nav-brand{font-size:16px;font-weight:700;color:var(--white);text-decoration:none}.nav-links{display:flex;align-items:center;gap:16px}.nav-links a{color:var(--text-secondary);text-decoration:none;font-size:14px;transition:color var(--transition)}.nav-links a:hover{color:var(--text)}.nav-btn{background:none;border:none;color:var(--text-secondary);font-family:var(--font);font-size:14px;cursor:pointer}.nav-btn:hover{color:var(--text)}.nav-btn-primary{background:var(--accent);color:var(--white);padding:6px 16px;border-radius:6px;font-weight:500}.nav-btn-primary:hover{color:var(--white);opacity:.9}.main-content{flex:1;max-width:900px;margin:0 auto;padding:40px 24px;width:100%}.loading{text-align:center;padding:60px;color:var(--text-tertiary)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:8px;font-family:var(--font);font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;border:none;transition:all var(--transition)}.btn-primary{background:var(--accent);color:var(--white)}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--bg-raised);color:var(--text-secondary);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--accent);color:var(--text)}.btn-github{background:#24292e;color:var(--white);margin-top:8px}.btn-github:hover{background:#2f363d}.btn-full{width:100%}.auth-page{display:flex;justify-content:center;padding-top:60px}.auth-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:36px;width:100%;max-width:420px}.auth-card h2{font-size:22px;font-weight:700;color:var(--white);margin-bottom:4px}.auth-sub{color:var(--text-secondary);font-size:14px;margin-bottom:20px}.auth-card form{display:flex;flex-direction:column;gap:14px}.auth-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary)}.auth-card input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:var(--text);font-family:var(--font);font-size:14px;outline:none;transition:border-color var(--transition)}.auth-card input:focus{border-color:var(--accent)}.auth-links{display:flex;justify-content:space-between;margin-top:16px;font-size:13px}.auth-links a{color:var(--accent);text-decoration:none}.auth-links a:hover{text-decoration:underline}.alert{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px;line-height:1.4}.alert code{background:#ffffff1a;padding:2px 6px;border-radius:4px;font-size:12px}.alert-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--red)}.alert-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:var(--green)}.alert-info{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:var(--accent)}.landing{text-align:center}.landing-hero{padding:40px 0 48px}.landing-hero h1{font-size:40px;font-weight:700;color:var(--white);margin-bottom:12px}.landing-hero p{color:var(--text-secondary);font-size:16px;max-width:500px;margin:0 auto;line-height:1.6}.landing-actions{display:flex;gap:12px;justify-content:center;margin-top:28px}.features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;text-align:left;margin-bottom:40px}.feature-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:24px}.feature-card h3{font-size:15px;color:var(--white);margin-bottom:6px}.feature-card p{font-size:13px;color:var(--text-secondary);line-height:1.5}.demo-creds{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:24px;text-align:left}.demo-creds h3{font-size:14px;color:var(--text);margin-bottom:12px}.cred-row{display:flex;align-items:center;gap:12px;padding:4px 0;font-size:13px}.cred-label{color:var(--text-secondary);min-width:50px}.cred-row code{color:var(--accent);background:#3b82f61a;padding:2px 8px;border-radius:4px;font-size:12px}.dashboard-page h2,.admin-page h2{font-size:24px;font-weight:700;color:var(--white);margin-bottom:4px}.page-sub{color:var(--text-secondary);font-size:14px;margin-bottom:24px}.profile-card,.token-info{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:16px}.profile-card h3,.token-info h3{font-size:14px;font-weight:600;margin-bottom:16px;color:var(--text)}.token-info p{font-size:13px;color:var(--text-secondary);line-height:1.5}.profile-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px}.profile-row:last-child{border-bottom:none}.profile-row span:first-child{color:var(--text-secondary)}.role-badge{font-size:12px;padding:2px 10px;border-radius:12px;font-weight:500}.role-admin{background:#f59e0b26;color:var(--yellow)}.role-user{background:#3b82f626;color:var(--accent)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}thead th{text-align:left;padding:10px 12px;color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border)}tbody td{padding:10px 12px;border-bottom:1px solid var(--border);color:var(--text-secondary)}tbody tr:hover td{color:var(--text);background:var(--bg-hover)}@media (max-width: 640px){.features-grid{grid-template-columns:1fr}.landing-hero h1{font-size:28px}.auth-card{padding:24px}.main-content{padding:24px 16px}}
