.app-shell{background-color:var(--color-bg-app);min-height:100vh;display:flex}.app-main{flex-direction:column;flex:1;min-height:100vh;transition:margin-left .3s;display:flex}.app-content{padding:var(--spacing-4);padding-bottom:calc(var(--bottom-nav-height) + var(--spacing-4));flex:1}.content-container{width:100%;max-width:1400px;margin:0 auto}@media (width>=768px){.app-content{padding:var(--spacing-6) var(--spacing-8);padding-bottom:var(--spacing-6)}.sidebar-is-open{margin-left:var(--sidebar-width)}.sidebar-is-closed{margin-left:var(--sidebar-width-collapsed)}}.btn{justify-content:center;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);font-family:var(--font-family-sans);font-size:var(--text-small);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;font-weight:500;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.btn-full-width{width:100%}.btn-primary{background-color:var(--color-primary-600);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-700)}.btn-secondary{background-color:var(--color-bg-surface);color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg-surface-hover)}.btn-icon{padding:var(--spacing-2);border-radius:var(--radius-full);color:var(--color-text-secondary);background-color:#0000}.btn-icon:hover:not(:disabled){background-color:var(--color-bg-app);color:var(--color-text-primary)}.btn-spinner{border:2px solid #ffffff4d;border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=767px){.btn:not(.btn-icon){min-height:44px}}.form-field{gap:var(--spacing-1);margin-bottom:var(--spacing-4);flex-direction:column;display:flex}.form-label{font-size:var(--text-small);color:var(--color-text-primary);font-weight:500}.form-required{color:var(--color-error);margin-left:2px}.form-input,.form-select{width:100%;padding:var(--spacing-2) var(--spacing-3);font-family:var(--font-family-sans);font-size:var(--text-body);color:var(--color-text-primary);background-color:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:44px;transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 2px var(--color-primary-100);outline:none}.form-input:disabled,.form-select:disabled{background-color:var(--color-bg-app);color:var(--color-text-secondary);cursor:not-allowed}.form-error{color:var(--color-error);margin-top:2px;font-size:12px}@media (width<=767px){.form-field{margin-bottom:var(--spacing-6)}}:root{--color-bg-primary:#f8fafc;--color-bg-secondary:#fff;--color-text-primary:var(--color-slate-900);--color-text-secondary:var(--color-slate-500);--color-primary-accent:#3b82f6;--glass-bg:#ffffffa6;--glass-border:#fff6;--glass-shadow:0 4px 30px #0000001a;--glass-backdrop-filter:blur(12px) saturate(150%);--font-family-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-h1:2rem;--text-h2:1.5rem;--text-h3:1.25rem;--text-body:1rem;--text-small:.875rem;--line-height-base:1.5;--line-height-tight:1.2;--color-primary-50:#eef2ff;--color-primary-100:#e0e7ff;--color-primary-500:#6366f1;--color-primary-600:#4f46e5;--color-primary-700:#4338ca;--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cbd5e1;--color-slate-400:#94a3b8;--color-slate-500:#64748b;--color-slate-600:#475569;--color-slate-700:#334155;--color-slate-800:#1e293b;--color-slate-900:#0f172a;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-bg-app:var(--color-slate-50);--color-bg-surface:#fff;--color-bg-surface-hover:var(--color-slate-50);--color-text-inverse:#fff;--color-border:var(--color-slate-200);--color-border-focus:var(--color-primary-500);--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-12:3rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-full:9999px;--z-header:40;--z-bottom-nav:40;--z-sidebar:30;--z-modal:50;--header-height:64px;--bottom-nav-height:64px;--sidebar-width:260px;--sidebar-width-collapsed:72px}@media (prefers-color-scheme:dark){:root{--color-bg-app:var(--color-slate-900);--color-bg-surface:var(--color-slate-800);--color-bg-surface-hover:var(--color-slate-700);--color-text-primary:var(--color-slate-50);--color-text-secondary:var(--color-slate-400);--color-border:var(--color-slate-700);--shadow-sm:0 1px 2px 0 #00000080;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -2px #0006;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -4px #0006}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-sans);background-color:var(--color-bg-app);color:var(--color-text-primary);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:var(--text-h1);line-height:var(--line-height-tight);font-weight:700}h2{font-size:var(--text-h2);line-height:var(--line-height-tight);font-weight:600}h3{font-size:var(--text-h3);line-height:var(--line-height-tight);font-weight:600}p{font-size:var(--text-body)}small{font-size:var(--text-small);color:var(--color-text-secondary)}.glass-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-4);transition:box-shadow .2s ease-in-out}.glass-card:hover{transform:translateY(-2px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.mobile-container{background-color:var(--color-bg-primary);max-width:480px;min-height:100vh;margin:0 auto;position:relative;overflow-x:hidden;box-shadow:0 0 20px #0000000d}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.animate-pulse-slow{animation:3s ease-in-out infinite pulse}
