*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f5f7fa;color:#333;height:100vh;overflow:hidden}#app{height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c7cd;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a8b0b8}.btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s}.btn-primary{background:#4a90d9;color:#fff}.btn-primary:hover{background:#357abd}.btn-secondary{background:#e8ecf1;color:#333}.btn-secondary:hover{background:#d5dbe3}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}.btn-success{background:#2ecc71;color:#fff}.btn-success:hover{background:#27ae60}.btn-sm{padding:4px 12px;font-size:12px}.btn:disabled{opacity:.6;cursor:not-allowed}.input{padding:8px 12px;border:1px solid #d0d7de;border-radius:4px;font-size:14px;transition:border-color .2s;width:100%}.input:focus{outline:none;border-color:#4a90d9;box-shadow:0 0 0 3px #4a90d91a}.input.error{border-color:#e74c3c}.checkbox{width:16px;height:16px;cursor:pointer}.context-menu{position:fixed;background:white;border-radius:8px;box-shadow:0 4px 16px #00000026;padding:6px 0;min-width:180px;z-index:1000;animation:menuFadeIn .15s ease}.context-menu-item{padding:8px 16px;cursor:pointer;font-size:14px;color:#333;transition:background .15s}.context-menu-item:hover{background:#f0f2f5}.context-menu-item.danger{color:#e74c3c}.context-menu-item.danger:hover{background:#fde8e5}.context-menu-divider{height:1px;background:#e8ecf1;margin:4px 8px}@keyframes menuFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:2000;animation:overlayFadeIn .2s ease}.modal{background:white;border-radius:12px;padding:24px;min-width:400px;max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0003;animation:modalSlideIn .25s ease}.modal-title{font-size:20px;font-weight:600;margin-bottom:20px;color:#1a1a2e}.modal-body{margin-bottom:20px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:16px;border-top:1px solid #e8ecf1}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.toast{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:8px;color:#fff;font-size:14px;z-index:3000;animation:toastSlideIn .3s ease;box-shadow:0 4px 12px #00000026}.toast-success{background:#2ecc71}.toast-error{background:#e74c3c}.toast-info{background:#4a90d9}@keyframes toastSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media (max-width: 768px){.modal{min-width:90vw;margin:20px;max-height:90vh}}
