.app{background-color:var(--bg-primary);min-height:100vh;color:var(--text-primary);transition:background-color var(--transition-normal), color var(--transition-normal)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter-from,.fade-leave-to{opacity:0}:root{--color-black:#0a0a0a;--color-white:#fff;--color-gray-50:#fafafa;--color-gray-100:#f5f5f5;--color-gray-200:#e5e5e5;--color-gray-300:#d4d4d4;--color-gray-400:#a3a3a3;--color-gray-500:#737373;--color-gray-600:#525252;--color-gray-700:#404040;--color-gray-800:#262626;--color-gray-900:#171717;--bg-primary:var(--color-black);--bg-secondary:var(--color-gray-900);--bg-card:var(--color-gray-800);--bg-hover:var(--color-gray-700);--bg-input:var(--color-gray-900);--text-primary:var(--color-white);--text-secondary:var(--color-gray-300);--text-muted:var(--color-gray-500);--text-inverse:var(--color-black);--border-color:var(--color-gray-700);--border-light:var(--color-gray-800);--accent-color:#0af;--accent-hover:#08c;--accent-muted:#00aaff1a;--success-color:#22c55e;--warning-color:#f59e0b;--error-color:#ef4444;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0006;--shadow-lg:0 10px 15px #00000080;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--transition-fast:.15s ease;--transition-normal:.3s ease}[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f2f2f5;--bg-card:#fafafc;--bg-hover:#e8e8ed;--bg-input:#f5f5f8;--text-primary:#1a1a1a;--text-secondary:#4a4a4a;--text-muted:#6a6a6a;--border-color:#d8d8de;--border-light:#eeeeef;--accent-color:#05b;--accent-hover:#049;--accent-muted:#0055bb1f;--shadow-sm:0 1px 2px #00000014;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;transition:background-color var(--transition-normal), color var(--transition-normal);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}a{color:var(--accent-color);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}button{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none}button:disabled{cursor:not-allowed;opacity:.5}input,textarea{font-family:inherit;font-size:inherit;color:inherit;background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:12px 16px}input:focus,textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-muted)}input::placeholder,textarea::placeholder{color:var(--text-muted)}img,svg{max-width:100%;display:block}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:600;line-height:1.2}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1rem}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background-color:var(--accent-color);color:var(--text-inverse)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.page-container{flex-direction:column;min-height:100vh;display:flex}.page-content{flex-direction:column;flex:1;display:flex}.card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:transform var(--transition-normal), box-shadow var(--transition-normal);padding:24px}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-clickable{cursor:pointer}.card-clickable:active{transform:translateY(0)}.btn{border-radius:var(--radius-md);transition:all var(--transition-fast);justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-weight:500;display:inline-flex}.btn-primary{background-color:var(--accent-color);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--accent-hover)}.btn-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-hover)}.btn-ghost{color:var(--text-secondary);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.btn-sm{padding:8px 16px;font-size:14px}.btn-lg{padding:16px 32px;font-size:18px}.input-group{flex-direction:column;gap:8px;display:flex}.input-group label{color:var(--text-secondary);font-size:14px;font-weight:500}.modal-overlay{z-index:100;animation:fadeIn var(--transition-fast);background-color:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);max-width:90vw;max-height:90vh;animation:slideUp var(--transition-normal);padding:32px;overflow:auto}.tag{background-color:var(--accent-muted);color:var(--accent-color);border-radius:var(--radius-sm);align-items:center;padding:4px 12px;font-size:12px;font-weight:500;display:inline-flex}.divider{background-color:var(--border-color);height:1px;margin:24px 0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-accent{color:var(--accent-color)}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}.p-1{padding:8px}.p-2{padding:16px}.p-3{padding:24px}.p-4{padding:32px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:8px}.gap-2{gap:16px}.gap-3{gap:24px}@media (width<=768px){.page-container,.card{padding:16px}}@media (width<=480px){h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.1rem}}
