:root{--v-bg:#ffffff;--v-accents-1:#fafafa;--v-accents-2:#eaeaea;--v-accents-3:#999;--v-accents-4:#888;--v-accents-5:#666;--v-accents-6:#444;--v-accents-7:#333;--v-accents-8:#111;--v-foreground:#000;--v-success:#0070f3;--v-error:#ee0000;--v-warning:#f5a623;--v-border:#eaeaea;--v-shadow-small:0 5px 10px rgba(0,0,0,0.12);--v-shadow-medium:0 8px 30px rgba(0,0,0,0.12);--v-radius:12px}.dark,[data-theme=dark]{--v-bg:#000000;--v-accents-1:#111;--v-accents-2:#333;--v-accents-3:#444;--v-accents-4:#666;--v-accents-5:#888;--v-accents-6:#999;--v-accents-7:#eaeaea;--v-accents-8:#fafafa;--v-foreground:#fff;--v-border:#333;--v-shadow-small:0 0 0 1px #333;--v-shadow-medium:0 0 0 1px #333}body{background-color:var(--v-bg);color:var(--v-foreground);transition:background-color .3s ease,color .3s ease}.v-card{background:var(--v-bg);border:1px solid var(--v-border);border-radius:var(--v-radius);padding:1.5rem;transition:all .2s ease}.v-card:hover{box-shadow:var(--v-shadow-medium);transform:translateY(-2px);border-color:var(--v-accents-3)}.v-sidebar{width:260px;background:var(--v-bg);border-right:1px solid var(--v-border);height:100vh;display:flex;flex-direction:column}.v-sidebar-item{display:flex;align-items:center;padding:.75rem 1rem;margin:.25rem .5rem;border-radius:8px;color:var(--v-accents-5);font-size:.875rem;font-weight:500;transition:all .2s}.v-sidebar-item.active,.v-sidebar-item:hover{background:var(--v-accents-1);color:var(--v-foreground)}.v-header{height:64px;background:rgba(var(--v-bg),.8);backdrop-filter:blur(12px);border-bottom:1px solid var(--v-border);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;position:sticky;top:0;z-index:50}.v-btn-primary{background:var(--v-foreground);color:var(--v-bg);padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:600;transition:all .2s}.v-btn-primary:hover{opacity:.9;transform:scale(.98)}.v-btn-secondary{background:var(--v-bg);color:var(--v-foreground);border:1px solid var(--v-border);padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:600;transition:all .2s}.v-btn-secondary:hover{background:var(--v-accents-1);border-color:var(--v-accents-4)}.v-stat-label{font-size:.75rem;font-weight:600;color:var(--v-accents-5);text-transform:uppercase;letter-spacing:.05em}.v-stat-value{font-size:1.5rem;font-weight:700;color:var(--v-foreground);margin-top:.25rem}@keyframes v-fade-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.v-animate-fade-in{animation:v-fade-in .4s ease-out forwards}