.side-panel { top: 0; bottom: 0; height: 100vh; overflow: hidden; background: linear-gradient(160deg, #1e1b4b 0%, #1e3a5f 60%, #0f2744 100%); border-right: 1px solid rgba(255, 255, 255, 0.08); }
.side-head { padding: 1rem 1.25rem; border-bottom: 1px solid rgba(255, 255, 255, 0.08); display: flex; align-items: center; justify-content: space-between; }
.side-brand { display: flex; align-items: center; gap: 0.625rem; }
.side-brand i { color: #a78bfa; font-size: 1.125rem; }
.side-brand span { color: #fff; font-weight: 700; font-size: 1rem; }
.side-close { color: rgba(255, 255, 255, 0.5); background: none; border: none; cursor: pointer; }
.side-close:hover { color: #fff; }
.side-user { padding: 0.875rem 1.25rem; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.side-user-label { font-size: 0.8rem; color: rgba(255, 255, 255, 0.45); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.375rem; }
.side-user-name { color: #e0e7ff; font-weight: 600; font-size: 0.875rem; }
.side-nav { flex: 1; min-height: 0; overflow-y: auto; padding: 0.75rem; margin: 0; list-style: none; }
.side-nav li { list-style: none; margin-bottom: 2px; }
.side-section { padding: 0.75rem 0.75rem 0.25rem; font-size: 0.65rem; font-weight: 700; color: rgba(255, 255, 255, 0.3); text-transform: uppercase; letter-spacing: 0.1em; }
.side-sep { border-top: 1px solid rgba(255, 255, 255, 0.08); margin-top: 0.5rem; padding-top: 0.5rem; }
.side-item { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0.75rem; border-radius: 0.5rem; text-decoration: none; border-left: 3px solid transparent; transition: all 0.15s; }
.side-item i { width: 1rem; text-align: center; font-size: 0.85rem; color: rgba(255, 255, 255, 0.4); }
.side-item span { font-size: 0.875rem; font-weight: 500; color: rgba(255, 255, 255, 0.75); }
.side-item:hover { background: rgba(255, 255, 255, 0.07); }
.side-item:hover span { color: #fff; }
.side-item.active { background: rgba(167, 139, 250, 0.18); border-left-color: #a78bfa; }
.side-item.active i { color: #a78bfa; }
.side-item.active span { color: #c4b5fd; }

.admin-box, .admin-box h1, .admin-box h3, .admin-box p, .admin-box td, .admin-box th, .admin-box label, .admin-box code { color: #1f2937; }
.admin-box table { width: 100%; border-collapse: collapse; }
.admin-box th, .admin-box td { padding: 8px 10px; border-bottom: 1px solid #e5e7eb; text-align: left; vertical-align: middle; }
.admin-box th { background: #f5f3ff; }
.admin-box input[type=text], .admin-box input[type=password], .admin-box input[type=email], .admin-box input[type=file], .admin-box select { width: 100%; padding: 8px 12px; border: 2px solid #e9d5ff; border-radius: 12px; font: inherit; background: #fff; color: #1f2937; }
.admin-box input:focus, .admin-box select:focus { outline: none; border-color: #a855f7; }
.btn, .admin-box button { padding: 8px 16px; border: 0; border-radius: 12px; background: linear-gradient(to right, #9333ea, #2563eb); color: #fff; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; display: inline-block; }
.btn { color: #fff; }
.admin-box button.danger { background: #dc2626; }
.admin-box button.secondary { background: #6b7280; }
.msg { padding: 10px 14px; border-radius: 12px; margin-bottom: 14px; background: #dcfce7; color: #166534; border: 1px solid #86efac; }
.msg.error { background: #fee2e2; color: #991b1b; border-color: #fca5a5; }
.card { background: #faf5ff; border: 1px solid #e9d5ff; border-radius: 16px; padding: 18px; margin-bottom: 18px; }
.row { display: flex; gap: 14px; flex-wrap: wrap; }
.row > * { flex: 1 1 220px; }
.table-wrap { overflow-x: auto; }
.cjk { font-size: 20px; }

.stat { text-align: center; padding: 1.5rem; border-radius: 1rem; }
.stat i { font-size: 2.25rem; margin-bottom: 0.5rem; color: #fff; }
.stat h3 { font-size: 2rem; font-weight: 700; color: #fff; }
.stat p { color: rgba(255, 255, 255, 0.85); }
.quick { display: block; text-decoration: none; padding: 1.5rem; border-radius: 1rem; text-align: center; transition: transform 0.2s; }
.quick:hover { transform: scale(1.04); }
.quick i { font-size: 2rem; color: #fff; margin-bottom: 0.5rem; }
.quick h3 { color: #fff; font-weight: 700; font-size: 1.15rem; }
.quick p { color: rgba(255, 255, 255, 0.8); font-size: 0.9rem; }
.login-card { max-width: 28rem; margin: 0 auto; }
body { min-height: 100vh; background-attachment: fixed !important; background-repeat: no-repeat !important; }
.secondary-link { background: #6b7280; }
