.seal-preview {
        background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%);
        backdrop-filter: blur(10px);
    }

    .seal-canvas {
        filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
    }

    .seal-sprite-loading {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        pointer-events: none;
        background: rgba(255, 255, 255, 0.72);
    }

    .seal-sprite-loading.hidden {
        display: none;
    }

    .seal-sprite-spinner {
        width: 36px;
        height: 36px;
        border: 3px solid #e5e7eb;
        border-top-color: #3b82f6;
        border-radius: 50%;
        animation: seal-sprite-spin 0.75s linear infinite;
    }

    @keyframes seal-sprite-spin {
        to {
            transform: rotate(360deg);
        }
    }

    .slider {
        -webkit-appearance: none;
        height: 6px;
        border-radius: 3px;
        background: #e5e7eb;
        outline: none;
    }

    .slider::-webkit-slider-thumb {
        -webkit-appearance: none;
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: #3b82f6;
        cursor: pointer;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    }

    .btn-gradient {
        background: #3b82f6;
        transition: all 0.3s ease;
    }

    .btn-gradient:hover {
        background: #2563eb;
        transform: translateY(-2px);
        box-shadow: 0 8px 25px rgba(59, 130, 246, 0.3);
    }

    .seal-type-btn {
        transition: all 0.3s ease;
    }

    .seal-type-btn.active {
        background: #3b82f6;
        color: white;
        transform: scale(1.05);
    }

    .seal-type-btn:hover:not(.active) {
        background: #f3f4f6;
        transform: translateY(-1px);
    }

    /* Tab样式（与字帖一致） */
    .tab-btn {
        transition: color 0.2s ease, border-color 0.2s ease;
    }

    .tab-content {
        transition: opacity 0.2s ease;
    }
