:root{--teal-50: #f0fdfa;--teal-100: #ccfbf1;--teal-200: #99f6e4;--teal-500: #14b8a6;--teal-600: #0d9488;--teal-700: #0f766e;--teal-800: #115e59;--amber-50: #fffbeb;--amber-100: #fef3c7;--amber-500: #f59e0b;--amber-600: #d97706;--amber-700: #b45309;--red-50: #fef2f2;--red-100: #fee2e2;--red-500: #ef4444;--red-600: #dc2626;--red-700: #b91c1c;--green-50: #f0fdf4;--green-100: #dcfce7;--green-500: #22c55e;--green-600: #16a34a;--green-700: #15803d;--neutral-0: #ffffff;--neutral-50: #fafafa;--neutral-100: #f5f5f5;--neutral-200: #e5e5e5;--neutral-300: #d4d4d4;--neutral-400: #a3a3a3;--neutral-500: #737373;--neutral-600: #525252;--neutral-700: #404040;--neutral-800: #262626;--neutral-900: #171717;--color-bg: var(--neutral-50);--color-surface: var(--neutral-0);--color-text: var(--neutral-900);--color-text-secondary: var(--neutral-500);--color-border: var(--neutral-200);--color-primary: var(--teal-700);--color-primary-hover: var(--teal-800);--color-primary-light: var(--teal-100);--color-danger: var(--red-600);--color-danger-bg: var(--red-50);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--header-h: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:var(--font-sans);font-size:16px;line-height:1.5;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.page{min-height:100vh;padding-bottom:96px}.container{max-width:720px;margin:0 auto;padding:0 16px}.app-header{position:sticky;top:0;z-index:100;height:var(--header-h);display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-header__title{font-size:18px;font-weight:700;flex:1;text-align:center}.app-header__btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);color:var(--color-primary);font-size:22px;transition:background .15s}.app-header__btn:hover{background:var(--color-primary-light)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:var(--radius-md);font-size:15px;font-weight:600;transition:background .15s,transform .1s,opacity .15s}.btn:active{transform:scale(.97)}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover{background:var(--color-primary-hover)}.btn--secondary{background:var(--neutral-100);color:var(--neutral-800)}.btn--secondary:hover{background:var(--neutral-200)}.btn--danger{background:var(--color-danger);color:#fff}.btn--danger:hover{background:var(--red-700)}.btn--block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:64px 24px;gap:12px}.empty-state__icon{font-size:48px;opacity:.3}.empty-state__title{font-size:18px;font-weight:600;color:var(--neutral-700)}.empty-state__text{font-size:14px;color:var(--color-text-secondary);max-width:280px}.loading{display:flex;justify-content:center;align-items:center;padding:48px;color:var(--color-text-secondary);font-size:14px}.fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:28px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);z-index:50;transition:transform .15s,background .15s}.fab:hover{background:var(--color-primary-hover)}.fab:active{transform:scale(.92)}.page-enter-active,.page-leave-active{transition:opacity .2s,transform .2s}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-8px)}
