@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--font-family:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-xs:.75rem;--font-sm:.875rem;--font-base:1rem;--font-lg:1.125rem;--font-xl:1.25rem;--font-2xl:1.5rem;--font-3xl:2rem;--font-4xl:2.5rem;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-2xl:24px;--space-3xl:32px;--space-4xl:40px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:50%;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--transition-spring:.3s cubic-bezier(.34,1.56,.64,1);--nav-height:64px;--header-height:56px;--max-width:480px;--safe-bottom:env(safe-area-inset-bottom,0px);--color-bg:#0f172a;--color-bg-elevated:#1e293b;--color-card:#1e293bcc;--color-card-solid:#1e293b;--color-card-hover:#1e293bf2;--color-primary:#3b82f6;--color-primary-light:#60a5fa;--color-accent:#14b8a6;--color-accent-light:#2dd4bf;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-text-dim:#64748b;--color-border:#334155;--color-border-focus:#3b82f6;--color-danger:#ef4444;--color-danger-light:#fca5a5;--color-success:#22c55e;--color-success-light:#86efac;--color-warning:#f59e0b;--gradient-primary:linear-gradient(135deg, #3b82f6 0%, #14b8a6 100%);--gradient-card:linear-gradient(135deg, #1e293be6 0%, #0f172ae6 100%);--shadow-sm:0 2px 8px #0003;--shadow-card:0 4px 24px #0000004d;--shadow-fab:0 6px 20px #14b8a666;--glass-blur:blur(12px);--glass-border:1px solid #ffffff14;--calendar-filter:invert(1)}[data-theme=light]{--color-bg:#f1f5f9;--color-bg-elevated:#fff;--color-card:#fffc;--color-card-solid:#fff;--color-card-hover:#fffffff2;--color-text:#0f172a;--color-text-muted:#475569;--color-text-dim:#94a3b8;--color-border:#e2e8f0;--color-border-focus:#3b82f6;--shadow-sm:0 2px 4px #0000000d;--shadow-card:0 4px 20px #0f172a14;--glass-border:1px solid #0f172a14;--calendar-filter:invert(0)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);color:var(--color-text);background:var(--color-bg);min-height:100dvh;line-height:1.5;overflow-x:hidden}#root{flex-direction:column;min-height:100dvh;display:flex}h1,h2,h3,h4{color:var(--color-text);font-weight:600;line-height:1.2}h1{font-size:var(--font-3xl)}h2{font-size:var(--font-2xl)}h3{font-size:var(--font-xl)}p{color:var(--color-text-muted);line-height:1.6}a{color:var(--color-primary-light);text-decoration:none}.card{background:var(--color-card);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-card)}.card-title{font-size:var(--font-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-md);font-weight:600}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:none;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--color-bg-elevated);color:var(--color-text);border:1px solid var(--color-border)}.btn-danger{background:var(--color-danger);color:#fff}.btn-ghost{color:var(--color-accent);padding:var(--space-sm) var(--space-md);background:0 0}.btn-block{width:100%;display:flex}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.input-group{gap:var(--space-xs);flex-direction:column;display:flex}.input-label{font-size:var(--font-sm);color:var(--color-text-muted);font-weight:500}.input{width:100%;padding:var(--space-md) var(--space-lg);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-base);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);-webkit-appearance:none;outline:none}input[type=date]::-webkit-calendar-picker-indicator{filter:var(--calendar-filter);cursor:pointer}input[type=time]::-webkit-calendar-picker-indicator{filter:var(--calendar-filter);cursor:pointer}.input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #14b8a626}.input::placeholder{color:var(--color-text-dim)}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:40px}textarea.input{resize:vertical;min-height:80px}.chip{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);color:var(--color-accent-light);background:#14b8a626;border:1px solid #14b8a64d;border-radius:20px;display:inline-flex}.chip-remove{border-radius:var(--radius-full);width:18px;height:18px;color:var(--color-text-muted);font-size:var(--font-xs);cursor:pointer;background:#ffffff1a;border:none;justify-content:center;align-items:center;display:inline-flex}.chip-remove:hover{color:var(--color-danger-light);background:#ef44444d}.badge{align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--color-primary-light);background:#3b82f626;border:1px solid #3b82f64d;font-weight:500;display:inline-flex}.badge-success{color:var(--color-success-light);background:#22c55e26;border-color:#22c55e4d}.progress-bar{background:var(--color-bg);border-radius:20px;width:100%;height:8px;overflow:hidden}.progress-fill{background:var(--gradient-primary);height:100%;transition:width var(--transition-slow);border-radius:20px;min-width:2px}.fab{bottom:calc(var(--nav-height) + var(--safe-bottom) + var(--space-lg));right:var(--space-xl);border-radius:var(--radius-full);background:var(--gradient-primary);color:#fff;width:56px;height:56px;font-size:var(--font-2xl);box-shadow:var(--shadow-fab);cursor:pointer;z-index:100;transition:transform var(--transition-spring);-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;display:flex;position:fixed}.fab:active{transform:scale(.9)}.bottom-nav{height:calc(var(--nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--color-card);-webkit-backdrop-filter:var(--glass-blur);border-top:1px solid var(--color-border);z-index:200;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{padding:var(--space-sm);color:var(--color-text-dim);font-size:var(--font-xs);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;font-weight:500;text-decoration:none;display:flex}.nav-item.active{color:var(--color-accent)}.nav-item svg{width:24px;height:24px}.page{width:100%;max-width:var(--max-width);padding:var(--space-lg);padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + var(--space-4xl));flex:1;margin:0 auto}.page-header{padding:var(--space-lg);height:var(--header-height);justify-content:space-between;align-items:center;display:flex}.page-header-title{font-size:var(--font-lg);font-weight:600}.page-header-back{width:36px;height:36px;color:var(--color-text);font-size:var(--font-xl);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.metric-value{font-size:var(--font-4xl);background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800;line-height:1}.metric-label{font-size:var(--font-sm);color:var(--color-text-muted);margin-top:var(--space-xs)}.stepper{flex-direction:column;align-items:center;width:100%;display:flex}.stepper-btn{border:1px solid var(--color-border);background:var(--color-bg-elevated);width:100%;height:40px;color:var(--color-text-muted);cursor:pointer;font-size:var(--font-lg);transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;display:flex}.stepper-btn:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0}.stepper-btn:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.stepper-btn:active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.stepper-value{text-align:center;width:100%;padding:var(--space-md);background:var(--color-bg-elevated);border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);font-size:var(--font-3xl);color:var(--color-text);-webkit-appearance:none;-moz-appearance:textfield;border-top:none;border-bottom:none;outline:none;font-weight:700}.stepper-value::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.stepper-value::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;background:#0009;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-card-solid);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-2xl);width:100%;max-width:var(--max-width);max-height:85dvh;animation:.3s slideUp;overflow-y:auto}.modal-handle{background:var(--color-text-dim);width:40px;height:4px;margin:0 auto var(--space-xl);border-radius:20px}.offline-banner{padding:var(--space-xs) var(--space-lg);background:var(--color-warning);color:var(--color-bg);text-align:center;font-size:var(--font-xs);z-index:1000;font-weight:600;animation:.3s slideDown;position:fixed;top:0;left:0;right:0}.auth-page{min-height:100dvh;padding:var(--space-2xl);flex-direction:column;justify-content:center;align-items:center;display:flex}.auth-card{gap:var(--space-xl);flex-direction:column;width:100%;max-width:380px;display:flex}.auth-logo{text-align:center;margin-bottom:var(--space-xl)}.auth-logo h1{font-size:var(--font-3xl);background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800}.auth-logo p{font-size:var(--font-sm);margin-top:var(--space-sm)}.empty-state{padding:var(--space-4xl) var(--space-xl);text-align:center;align-items:center;gap:var(--space-lg);flex-direction:column;display:flex}.empty-state-icon{opacity:.5;font-size:48px}.empty-state-text{font-size:var(--font-sm);color:var(--color-text-dim)}.divider{background:var(--color-border);height:1px;margin:var(--space-lg) 0}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease forwards}.animate-slide-up{animation:slideUp var(--transition-slow) ease forwards}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.18s}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:20px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.text-center{text-align:center}.text-sm{font-size:var(--font-sm)}.text-muted{color:var(--color-text-muted)}.text-accent{color:var(--color-accent)}.w-full{width:100%}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-lg{margin-bottom:var(--space-lg)}
