@charset "UTF-8";:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-light: #dbeafe;--primary-lighter: #eff6ff;--accent: #dc2626;--accent-light: #fef2f2;--accent-dark: #b91c1c;--success: #16a34a;--success-light: #f0fdf4;--warning: #f59e0b;--warning-light: #fffbeb;--bg: #ffffff;--surface: #f8fafc;--surface-hover: #f1f5f9;--border: #e2e8f0;--border-light: #f1f5f9;--text: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--danger: #fee2e2;--danger-text: #dc2626;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .12);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", monospace;--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 28px;--leading: 1.5;--leading-tight: 1.25;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--ease: cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--text-base);line-height:var(--leading);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:none;border-radius:var(--radius-md);font-family:var(--font);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--ease);min-height:44px;padding:var(--space-2) var(--space-4);text-decoration:none;line-height:1;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-dark)}.btn--danger{background:var(--accent);color:#fff}.btn--danger:hover:not(:disabled){background:var(--accent-dark)}.btn--ghost{background:transparent;color:var(--text-secondary)}.btn--ghost:hover:not(:disabled){background:var(--surface-hover)}.btn--outline{background:transparent;border:1.5px solid var(--border);color:var(--text)}.btn--outline:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.btn--sm{min-height:36px;padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn--icon{width:44px;height:44px;padding:0;border-radius:var(--radius-md)}.field{margin-bottom:var(--space-5)}.field label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-2)}.field input,.field textarea,.field select{width:100%;padding:var(--space-3);border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-base);font-family:var(--font);color:var(--text);background:var(--bg);transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease);-webkit-appearance:none;appearance:none}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.field input::placeholder,.field textarea::placeholder,.field select::placeholder{color:var(--text-muted)}textarea{resize:vertical;min-height:80px}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23475569' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}input[type=checkbox],input[type=radio]{accent-color:var(--primary)}.toggle{display:flex;align-items:center;justify-content:space-between;cursor:pointer;gap:var(--space-3)}.toggle__label{font-size:var(--text-sm);font-weight:600;color:var(--text);flex:1}.toggle__control{display:flex;align-items:center;flex-shrink:0;min-height:28px}.toggle__control input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.toggle__track{position:relative;width:48px;height:28px;background:var(--border);border-radius:var(--radius-full);transition:background var(--duration-fast) var(--ease);flex-shrink:0;cursor:pointer}.toggle__track:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;background:#fff;border-radius:50%;transition:transform var(--duration-fast) var(--ease);box-shadow:var(--shadow-sm)}input:checked+.toggle__track{background:var(--primary)}input:checked+.toggle__track:after{transform:translate(20px)}.badge{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-full);line-height:1.4}.badge--primary{background:var(--primary-light);color:var(--primary-dark)}.badge--success{background:var(--success-light);color:var(--success)}.badge--danger{background:var(--accent-light);color:var(--accent)}.badge--warning{background:var(--warning-light);color:var(--warning)}.badge--muted{background:var(--surface);color:var(--text-muted)}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.card--surface{background:var(--surface)}.card--selected{border-color:var(--primary);background:var(--primary-lighter)}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fadeIn var(--duration-fast) var(--ease)}.modal-sheet{background:var(--bg);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:500px;max-height:85vh;overflow-y:auto;animation:slideUp var(--duration-normal) var(--ease);padding-bottom:env(safe-area-inset-bottom,var(--space-4))}.modal-sheet__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-5) 0}.modal-sheet__header h3{font-size:var(--text-lg);font-weight:700;margin:0}.modal-sheet__header button{width:32px;height:32px;border-radius:50%;border:none;background:var(--surface);color:var(--text-muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) var(--ease)}.modal-sheet__header button:hover{background:var(--surface-hover)}.modal-sheet__body{padding:var(--space-5)}.modal-sheet__footer{display:flex;gap:var(--space-3);padding:0 var(--space-5) var(--space-5)}.empty-state{text-align:center;padding:var(--space-10) var(--space-5);color:var(--text-muted);font-size:var(--text-sm)}.empty-state__icon{font-size:32px;margin-bottom:var(--space-3)}.nav-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border-light)}.nav-header button{background:none;border:none;color:var(--primary);font-size:var(--text-base);cursor:pointer;padding:var(--space-1);min-height:36px;display:flex;align-items:center;gap:var(--space-1);font-weight:600;transition:opacity var(--duration-fast) var(--ease)}.nav-header button:active{opacity:.6}.nav-header h2{font-size:var(--text-lg);font-weight:700;margin:0;flex:1}.loading{text-align:center;padding:var(--space-10);color:var(--text-muted);font-size:var(--text-sm)}.fab{position:fixed;bottom:24px;width:52px;height:52px;border:none;border-radius:50%;cursor:pointer;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;z-index:99;transition:transform var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease);-webkit-tap-highlight-color:transparent}.fab:active{transform:scale(.92);box-shadow:var(--shadow-sm)}.fab--primary{background:var(--primary);color:#fff}.fab--ghost{background:var(--bg);color:var(--text);border:1px solid var(--border)}.fab--right{right:16px}.fab--left{left:16px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.slide-in{animation:slideIn var(--duration-normal) var(--ease) both}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
