:root{--primary: #8b5cf6;--primary-hover: #7c3aed;--bg-light: #f8fafc;--sidebar-bg: #ffffff;--card-bg: #ffffff;--border: #e2e8f0;--text-main: #1e293b;--text-muted: #64748b;--sidebar-width: 260px;--header-height: 70px;--accent: #10b981;--joyful-gradient: linear-gradient(135deg, #8b5cf6 0%, #3b82f6 100%)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background:var(--bg-light);color:var(--text-main);overflow:hidden}.app-container{display:flex;height:100vh;width:100vw}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--border);padding:1.5rem;display:flex;flex-direction:column;z-index:100;box-shadow:4px 0 15px #00000005}.logo{font-size:1.5rem;font-weight:800;background:var(--joyful-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:3rem;display:flex;align-items:center;gap:.75rem}.nav-links{list-style:none;flex:1}.nav-item{padding:1rem;margin-bottom:.5rem;border-radius:12px;cursor:pointer;display:flex;align-items:center;gap:1rem;color:var(--text-muted);font-weight:500;transition:all .2s ease}.nav-item:hover{background:#f1f5f9;color:var(--primary)}.nav-item.active{background:#f5f3ff;color:var(--primary)}.main-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden}.header{height:var(--header-height);background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;padding:0 2rem}.content-area{flex:1;padding:2.5rem;overflow-y:auto;background:#f1f5f980}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2.5rem}.stat-card{background:var(--card-bg);border:1px solid var(--border);padding:1.5rem;border-radius:16px;box-shadow:0 4px 6px -1px #0000000d;transition:transform .2s ease}.stat-card:hover{transform:translateY(-5px)}.stat-value{font-size:2rem;font-weight:700;color:var(--primary)}.stat-label{color:var(--text-muted);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.btn-primary{background:var(--joyful-gradient);color:#fff;padding:.75rem 1.5rem;border-radius:10px;border:none;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 10px #8b5cf633}.btn-primary:hover{opacity:.9;transform:scale(1.02)}.btn-glass{background:#f1f5f9;color:var(--text-main);border:1px solid var(--border);padding:.5rem 1rem;border-radius:8px;cursor:pointer}.glass-input{background:#fff;border:1px solid var(--border);color:var(--text-main);padding:.8rem 1.2rem;border-radius:12px;width:100%}.glass-card{background:var(--card-bg);border:1px solid var(--border);border-radius:20px;padding:2rem;box-shadow:0 10px 25px #00000008}.event-table{width:100%;border-collapse:collapse}.event-row{border-bottom:1px solid var(--border);transition:background .2s}.event-row:hover{background:#f8fafc}.event-cell{padding:1.2rem;text-align:left}.portal-container{max-width:1000px;margin:0 auto;padding:4rem 2rem}.scan-area{background:#fff;padding:4rem;border-radius:24px;border:2px dashed var(--border);text-align:center;transition:all .3s ease}.scan-area:hover{border-color:var(--primary);background:#f5f3ff}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-top:2rem}.result-card{position:relative;border-radius:16px;overflow:hidden;background:#fff;border:1px solid var(--border);box-shadow:0 4px 6px -1px #0000000d}.result-img-container{position:relative;width:100%;aspect-ratio:1}.result-img{width:100%;height:100%;object-fit:cover}.hover-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#8b5cf666;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;gap:1rem;opacity:0;transition:opacity .3s ease}.result-card:hover .hover-overlay{opacity:1}.action-btn{background:#fff;color:var(--primary);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;box-shadow:0 4px 10px #0000001a;transition:transform .2s}.action-btn:hover{transform:scale(1.1)}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}.mt-1{margin-top:1rem}.text-center{text-align:center}.text-right{text-align:right}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:1rem}.animate{animation:slideUp .4s ease forwards}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
