*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#0e0b12;
  --bg2:#161220;
  --bg3:#1e1830;
  --border:#2a2340;
  --text:#e8e4f0;
  --text2:#b0a8c0;
  --text3:#706880;
  --primary:#9D4EDD;
  --primary-dim:#7a3db8;
  --secondary:#d4a5f0;
  --accent:#b87aff;
  --success:#4ade80;
  --warning:#fbbf24;
  --danger:#f87171;
  --muted:#6b7280;
  --radius:6px;
  --font-display:'Cinzel',serif;
  --font-body:'Inter',system-ui,sans-serif;
}
html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--secondary)}
::selection{background:var(--primary);color:#fff}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--bg2)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--primary-dim)}

/* Loading */
#loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px;color:var(--text3)}
.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Layout */
.app-layout{display:flex;height:100vh}
.sidebar{width:240px;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}
.sidebar-header{padding:20px;border-bottom:1px solid var(--border)}
.sidebar-header h1{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--text);letter-spacing:.5px}
.sidebar-header p{font-size:11px;color:var(--text3);margin-top:4px}
.sidebar-nav{flex:1;padding:12px 0}
.nav-section{margin-bottom:8px}
.nav-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text3);padding:8px 20px 4px}
.nav-link{display:flex;align-items:center;gap:10px;padding:8px 20px;color:var(--text2);font-size:13px;cursor:pointer;transition:background .15s,color .15s;border-left:2px solid transparent}
.nav-link:hover{background:var(--bg3);color:var(--text)}
.nav-link.active{background:var(--bg3);color:var(--primary);border-left-color:var(--primary)}
.nav-link svg{width:16px;height:16px;opacity:.6}
.nav-link.active svg{opacity:1}
.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px}
.sidebar-footer img{width:28px;height:28px;border-radius:50%}
.sidebar-footer .user-info{flex:1;min-width:0}
.sidebar-footer .username{font-size:12px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-footer .role-badge{font-size:10px;color:var(--text3)}
.sidebar-footer a{font-size:11px;color:var(--text3);cursor:pointer}
.sidebar-footer a:hover{color:var(--danger)}

/* Main */
.main-content{flex:1;overflow-y:auto;display:flex;flex-direction:column}
.page-header{padding:24px 32px 0;border-bottom:1px solid var(--border);background:var(--bg)}
.page-header h2{font-family:var(--font-display);font-size:20px;font-weight:600;margin-bottom:4px}
.page-header p{font-size:12px;color:var(--text3);margin-bottom:16px}
.page-body{padding:24px 32px;flex:1}

/* Toolbar */
.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:20px;flex-wrap:wrap}
.search-input{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;color:var(--text);font-size:13px;width:280px;outline:none;transition:border-color .15s}
.search-input:focus{border-color:var(--primary)}
.search-input::placeholder{color:var(--text3)}
.filter-btn{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:6px 14px;color:var(--text2);font-size:12px;cursor:pointer;transition:all .15s}
.filter-btn:hover{border-color:var(--primary);color:var(--text)}
.filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}
.spacer{flex:1}
.pagination{display:flex;gap:4px;align-items:center}
.pagination button{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 10px;color:var(--text2);font-size:12px;cursor:pointer;transition:all .15s}
.pagination button:hover:not(:disabled){border-color:var(--primary);color:var(--text)}
.pagination button:disabled{opacity:.3;cursor:default}
.pagination button.active{background:var(--primary);border-color:var(--primary);color:#fff}
.pagination .page-info{font-size:11px;color:var(--text3);padding:0 8px}

/* Cards / Table */
.data-table{width:100%;border-collapse:collapse}
.data-table th{text-align:left;padding:10px 16px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);border-bottom:1px solid var(--border);background:var(--bg2)}
.data-table td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}
.data-table tr{cursor:pointer;transition:background .1s}
.data-table tbody tr:hover{background:var(--bg3)}
.data-table .user-cell{display:flex;align-items:center;gap:10px}
.data-table .user-cell img{width:28px;height:28px;border-radius:50%;flex-shrink:0}
.data-table .user-cell .name{font-weight:500;color:var(--text)}
.data-table .user-cell .id{font-size:11px;color:var(--text3)}

/* Badges */
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;line-height:1.6}
.badge-pending{background:#fbbf2420;color:var(--warning)}
.badge-open{background:#4ade8020;color:var(--success)}
.badge-archived{background:#6b728020;color:var(--muted)}
.badge-accepted{background:#4ade8020;color:var(--success)}
.badge-denied{background:#f8717120;color:var(--danger)}
.badge-high{background:#f8717120;color:var(--danger)}
.badge-medium{background:#fbbf2420;color:var(--warning)}
.badge-low{background:#6b728020;color:var(--muted)}
.badge-staff{background:#9D4EDD20;color:var(--primary)}
.badge-helper{background:#4ade8020;color:var(--success)}
.badge-manager{background:#fbbf2420;color:var(--warning)}

/* Detail Panel */
.detail-panel{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:24px;margin-bottom:20px}
.detail-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.detail-header img{width:48px;height:48px;border-radius:50%}
.detail-header h3{font-family:var(--font-display);font-size:18px;font-weight:600}
.detail-header .meta{font-size:12px;color:var(--text3)}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}
.detail-field{padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}
.detail-field .label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin-bottom:4px}
.detail-field .value{font-size:13px;color:var(--text)}
.detail-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;border:1px solid transparent;text-decoration:none}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-dim)}
.btn-secondary{background:var(--bg3);color:var(--text2);border-color:var(--border)}
.btn-secondary:hover{border-color:var(--primary);color:var(--text)}

/* Messages */
.message-list{max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}
.message-item{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;gap:10px}
.message-item:last-child{border-bottom:none}
.message-item img{width:24px;height:24px;border-radius:50%;flex-shrink:0}
.message-item .msg-author{font-size:12px;font-weight:500;color:var(--primary)}
.message-item .msg-time{font-size:10px;color:var(--text3);margin-left:auto}
.message-item .msg-content{font-size:13px;color:var(--text2);margin-top:2px;word-break:break-word}

/* Answers */
.answer-list{display:flex;flex-direction:column;gap:12px}
.answer-item{padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}
.answer-item .q{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin-bottom:4px}
.answer-item .a{font-size:13px;color:var(--text)}

/* Login */
.login-page{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg)}
.login-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:48px;text-align:center;max-width:400px;width:100%}
.login-card h1{font-family:var(--font-display);font-size:24px;font-weight:700;margin-bottom:8px}
.login-card p{font-size:13px;color:var(--text3);margin-bottom:24px}
.login-card .btn{width:100%;justify-content:center;padding:12px 24px;font-size:14px}
.denied-card{border-color:var(--danger)}
.denied-card h2{color:var(--danger);font-family:var(--font-display);font-size:18px;margin-bottom:8px}

/* Empty */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text3);text-align:center}
.empty-state svg{width:48px;height:48px;margin-bottom:16px;opacity:.3}
.empty-state h3{font-family:var(--font-display);font-size:16px;color:var(--text2);margin-bottom:4px}
.empty-state p{font-size:13px}

/* Stats row */
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:16px 20px}
.stat-card .stat-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin-bottom:4px}
.stat-card .stat-value{font-size:24px;font-weight:600;color:var(--text);font-family:var(--font-display)}

/* Transitions */
.page-enter{animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
