:root{--bg-primary:#ffffff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--border-color:#e2e8f0;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1);--glass-bg:rgba(255,255,255,0.7);--glass-border:rgba(0,0,0,0.1);--primary:#3b82f6;--primary-hover:#2563eb;--primary-light:#dbeafe;--secondary:#8b5cf6;--accent:#06b6d4;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--sunny:#fbbf24;--cloudy:#94a3b8;--rainy:#3b82f6;--snowy:#e0f2fe;--stormy:#6366f1}[data-theme="dark"]{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-tertiary:#94a3b8;--border-color:#334155;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.3);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.4);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.5);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.6);--glass-bg:rgba(15,23,42,0.7);--glass-border:rgba(255,255,255,0.1);--primary-light:#1e3a8a}body,.glass,.card,.widget{transition:background-color 0.3s ease,color 0.3s ease,border-color 0.3s ease}.theme-toggle{position:fixed;top:1rem;right:1rem;z-index:9999;width:56px;height:56px;border-radius:50%;background:var(--glass-bg);backdrop-filter:blur(12px);border:1px solid var(--glass-border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease;box-shadow:var(--shadow-lg)}.theme-toggle:hover{transform:scale(1.1);box-shadow:var(--shadow-xl)}.theme-toggle svg{width:24px;height:24px;transition:all 0.3s ease}.theme-toggle .sun-icon{display:none}.theme-toggle .moon-icon{display:block}[data-theme="dark"] .theme-toggle .sun-icon{display:block}[data-theme="dark"] .theme-toggle .moon-icon{display:none}body{background:var(--bg-primary);color:var(--text-primary)}.glass{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border)}.card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:1rem;padding:1.5rem;box-shadow:var(--shadow-md)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.bg-primary{background:var(--bg-primary)}.bg-secondary{background:var(--bg-secondary)}.bg-tertiary{background:var(--bg-tertiary)}