@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
:root { --primary: #4f46e5; --bg-body: #f8fafc; }
body { font-family: 'Plus Jakarta Sans', sans-serif; background-color: var(--bg-body); color: #0f172a; -webkit-tap-highlight-color: transparent; }
[v-cloak] { display: none; }
.login-container { background: radial-gradient(circle at top left, #f3f4f6 0%, #ffffff 100%); position: relative; }
.login-container::before { content: ''; position: absolute; top: -10%; left: -10%; width: 50%; height: 50%; background: radial-gradient(circle, rgba(79,70,229,0.05) 0%, transparent 70%); z-index: 0; }
.glass-card { background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 2rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.05), 0 0 20px rgba(0,0,0,0.02); }
.tab-container { display: inline-flex; gap: 0.5rem; padding: 0.5rem; background: #ffffff; border-radius: 1.5rem; overflow-x: auto; scrollbar-width: none; border: 1px solid #f1f5f9; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02); }
.tab-container::-webkit-scrollbar { display: none; }
.btn-tab { padding: 0.75rem 1.5rem; border-radius: 1rem; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); white-space: nowrap; flex-shrink: 0; color: #64748b; }
.btn-tab:hover { color: #0f172a; }
.btn-tab.active { background: var(--primary); color: white; box-shadow: 0 10px 15px -3px rgba(79, 70, 229, 0.2); }
.data-row { display: flex; flex-direction: column; padding: 1.25rem 0; border-bottom: 1px dashed #e2e8f0; }
.data-row:last-child { border-bottom: none; }
.data-label { font-size: 0.65rem; color: #64748b; font-weight: 800; text-transform: uppercase; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.5rem; letter-spacing: 0.05em; }
.data-value { font-weight: 700; color: #0f172a; line-height: 1.5; word-break: break-word; font-size: 0.95rem; }
.notif-panel { position: absolute; top: calc(100% + 1rem); right: 0; width: 360px; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); border-radius: 1.5rem; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); z-index: 1000; overflow: hidden; border: 1px solid #f1f5f9; }
.notif-item { transition: all 0.2s ease; border-left: 4px solid transparent; }
.notif-item:hover { background-color: #f8fafc; }
.notif-item.unread { background-color: #eef2ff; border-left-color: var(--primary); }
.pulse-live { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #10b981; animation: pulse-green 2s infinite; margin-right: 8px; }
@keyframes pulse-green { 0% { transform: scale(0.9); opacity: 1; } 70% { transform: scale(1.5); opacity: 0; } 100% { transform: scale(0.9); opacity: 0; } }
.loading-overlay { position: fixed; inset: 0; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(8px); z-index: 1000; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.pb-safe { padding-bottom: env(safe-area-inset-bottom); }
.custom-scroll::-webkit-scrollbar { height: 4px; width: 4px; }
.custom-scroll::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; }
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.profile-photo { width: 100px; height: 100px; border-radius: 1.5rem; object-fit: cover; border: 3px solid #ffffff; box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1); cursor: pointer; transition: transform 0.3s ease; }
.profile-photo:hover { transform: scale(1.05); }
.photo-badge { position: absolute; bottom: -5px; right: -5px; width: 28px; height: 28px; background: var(--primary); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; border: 3px solid white; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
.table-container { width: 100%; overflow-x: auto; border-radius: 1.5rem; background: #ffffff; border: 1px solid #f1f5f9; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02); }
table { width: 100%; border-collapse: separate; border-spacing: 0; }
th { background: #f8fafc; text-align: left; padding: 1.25rem 1.5rem; font-size: 0.65rem; font-weight: 800; text-transform: uppercase; color: #64748b; border-bottom: 1px solid #f1f5f9; white-space: nowrap; }
td { padding: 1.25rem 1.5rem; font-size: 0.85rem; color: #1e293b; border-bottom: 1px solid #f1f5f9; font-weight: 600; vertical-align: middle; transition: background-color 0.2s; }
tr:last-child td { border-bottom: none; }
tbody tr:hover td { background-color: #f8fafc; }
.va-highlight { background: linear-gradient(135deg, #4f46e5 0%, #3b82f6 100%); border-radius: 2rem; padding: 3rem 2rem; color: white; text-align: center; box-shadow: 0 20px 25px -5px rgba(79, 70, 229, 0.2); position: relative; overflow: hidden; }
.va-highlight::after { content: ''; position: absolute; top: -50%; right: -20%; width: 300px; height: 300px; background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 60%); border-radius: 50%; }
button:active { transform: scale(0.98); }
input, select, textarea { transition: all 0.2s ease; }
input:focus, select:focus, textarea:focus { transform: translateY(-1px); box-shadow: 0 10px 15px -3px rgba(0,0,0,0.05); }
@media (min-width: 768px) { .profile-photo { width: 130px; height: 130px; } .data-row { flex-direction: row; align-items: center; padding: 1.5rem 1rem; border-radius: 1rem; } .data-row:hover { background-color: #f8fafc; border-bottom-color: transparent; } .data-label { margin-bottom: 0; width: 35%; flex-shrink: 0; } }
.fade-enter-active, .fade-leave-active { transition: opacity 0.3s ease, transform 0.3s ease; }
.fade-enter-from, .fade-leave-to { opacity: 0; transform: translateY(10px); }